Программист

еще немного слов про 1С

Настройка Универсального отчета

Сегодня подвернулась интересная задачка – нужно было разобраться с отчетом, построенным на базе универсального. Загвоздка вот в чем (смотреть картинку): В отчете присутствует поле “К-во продаж”, которое отражает количество раз, которое товар встречался в группировке, т.е. количество раз, которое он был продан. Это видно особенно хорошо, когда отчет сформирован по документам. Проблема – нет общего [...]

Меню со спецэффектами

Пользователи уже давно привыкли к тому, что многие программы умеют отображать меню в сокращенном виде, которое при необходимости может раскрыться до полного размера. Подобный эффект можно реализовать и в 1С седьмой версии. Вот живой пример: в конфигурации “Простой учет” в полном журнале есть кнопка для установки быстрого отбора по виду документа, при нажатии на кнопку [...]

Условия в запросах

Пришлось немного поломать голову над составлением условий в запросах, на платформе 7.7. Проблема была в том, что текст запроса строился динамически и необходимо было иметь возможность гибко настраивать сложные условия, т.е. когда на одну переменную запроса нужно наложить несколько условий. К примеру, в запросе есть переменная “Субконто”, в ней элементы справочника, есть несколько групп справочника: [...]

Использование регистра сведений

Обнаружил одну, не совсем очевидную, особенность при работе с регистром сведений. Если, к примеру, есть регистр с тремя измерениями и я хочу установить новые значения ресурсов для набора измерений, создаю набор записей, устанавливаю отбор по измерениям, добавляю записи. Если при этом установить отбор, указав не три измерения, а только одно, то создаваемый набор записей заменит [...]

Математика в коде 1С

Конечно, не часто, но попадаются задачи, где необходимо использовать математические функции, например корень числа или тригонометрические синусы с косинусами. Встроенный язык 1С:Предприятия на такие вещи обделен, однако, можно воспользоваться доступным в среде Windows языком VBScript. Для вычисления выражений с функциями на VBScript необходимо в коде 1С создать объект “MSScriptControl.ScriptControl”, свойство “Language” установить в “VBScript” и [...]

Оставляем только числа

С последними нововведениями в учете в стандартных конфигурациях оказалась востребованной возможность программы автоматически очищать строку символов от знаков, не являющихся цифрами: в новой налоговой накладной, в печатной форме, выводятся номера телефонов, для этих номеров предусмотрены 10 клеток, в которые вносятся цифры, по одной в каждую клетку. Как правило, в справочнике, номера телефонов записаны так, как [...]

Отладка кода: НДС в УТП

Необычная проблема недавно попалась в УТП (конфигурация “Управление торговым предприятием” для Украины, платформа 8.2) – при формировании проводок в приходном документе проводка взаиморасчетов с контрагентом выполнялась с зачетом аванса, т.е. как второе событие, а проводка НДС как первое событие. В результате задваивалась сумма на дебете счета 6442, вместо того, чтобы появиться в кредите. Я рассматривал [...]

Как отредактировать документ если этого нельзя делать

Часто в учетных программах требуется разграничение прав пользователей и при этом обычно есть пользователи, которым, например, разрешено вводить новые документы, но запрещено редактировать уже введенные. К примеру, продавцы в отделе продаж оформляют расходные накладные на клиентов в течении рабочего дня, но не могут изменить накладную, которая введена вчера. Такие ограничения в 1С:Предприятии версии 7.7 накладываются [...]

Null <> Неопределено

С непривычки, может показаться, что понятия “Неопределено” и “Null” – синонимы в языке 1С, как, например, “Пока” и “While”. На самом деле это два разных типа. Значения типа Null в основном встречаются в результатах запроса, при объединении таблиц или в значениях группировок, когда запрос строится с итогами по группировкам, а значения некоторых реквизитов запроса попадают [...]

Проверка документа перед проведением

Еще одна привычка из седьмой версии, которую нужно менять с переходом на восьмерку: проверять все условия проведения документа в процедуре проведения. Дело в том, что в восьмой версии в модуле документа доступно больше событий и их можно гибче использовать.  Если, например, нужно наложить ограничение, связанное с признаком проведенности документа, сделать это в процедуре ОбработкаПроведения() не [...]

keep looking »