Меню со спецэффектами
Условия в запросах
Пришлось немного поломать голову над составлением условий в запросах, на платформе 7.7. Проблема была в том, что текст запроса строился динамически и необходимо было иметь возможность гибко настраивать сложные условия, т.е. когда на одну переменную запроса нужно наложить несколько условий. К примеру, в запросе есть переменная “Субконто”, в ней элементы справочника, есть несколько групп справочника: [...]
Использование регистра сведений
Обнаружил одну, не совсем очевидную, особенность при работе с регистром сведений. Если, к примеру, есть регистр с тремя измерениями и я хочу установить новые значения ресурсов для набора измерений, создаю набор записей, устанавливаю отбор по измерениям, добавляю записи. Если при этом установить отбор, указав не три измерения, а только одно, то создаваемый набор записей заменит [...]
Математика в коде 1С
Конечно, не часто, но попадаются задачи, где необходимо использовать математические функции, например корень числа или тригонометрические синусы с косинусами. Встроенный язык 1С:Предприятия на такие вещи обделен, однако, можно воспользоваться доступным в среде Windows языком VBScript. Для вычисления выражений с функциями на VBScript необходимо в коде 1С создать объект “MSScriptControl.ScriptControl”, свойство “Language” установить в “VBScript” и [...]
Оставляем только числа
С последними нововведениями в учете в стандартных конфигурациях оказалась востребованной возможность программы автоматически очищать строку символов от знаков, не являющихся цифрами: в новой налоговой накладной, в печатной форме, выводятся номера телефонов, для этих номеров предусмотрены 10 клеток, в которые вносятся цифры, по одной в каждую клетку. Как правило, в справочнике, номера телефонов записаны так, как [...]
Отладка кода: НДС в УТП
Необычная проблема недавно попалась в УТП (конфигурация “Управление торговым предприятием” для Украины, платформа 8.2) – при формировании проводок в приходном документе проводка взаиморасчетов с контрагентом выполнялась с зачетом аванса, т.е. как второе событие, а проводка НДС как первое событие. В результате задваивалась сумма на дебете счета 6442, вместо того, чтобы появиться в кредите. Я рассматривал [...]
Как отредактировать документ если этого нельзя делать
Часто в учетных программах требуется разграничение прав пользователей и при этом обычно есть пользователи, которым, например, разрешено вводить новые документы, но запрещено редактировать уже введенные. К примеру, продавцы в отделе продаж оформляют расходные накладные на клиентов в течении рабочего дня, но не могут изменить накладную, которая введена вчера. Такие ограничения в 1С:Предприятии версии 7.7 накладываются [...]
Null <> Неопределено
С непривычки, может показаться, что понятия “Неопределено” и “Null” – синонимы в языке 1С, как, например, “Пока” и “While”. На самом деле это два разных типа. Значения типа Null в основном встречаются в результатах запроса, при объединении таблиц или в значениях группировок, когда запрос строится с итогами по группировкам, а значения некоторых реквизитов запроса попадают [...]
Проверка документа перед проведением
Еще одна привычка из седьмой версии, которую нужно менять с переходом на восьмерку: проверять все условия проведения документа в процедуре проведения. Дело в том, что в восьмой версии в модуле документа доступно больше событий и их можно гибче использовать. Если, например, нужно наложить ограничение, связанное с признаком проведенности документа, сделать это в процедуре ОбработкаПроведения() не [...]
Как узнать путь к папке “Мои документы”
Чтобы в модуле 1С получить путь к папке пользователя “Мои документы” можно воспользоваться системным объектом Windows Script Host. Среди методов объекта есть SpecialFolders, который содержит коллекцию всех специальных системных папок. Вот пример кода в 1С 7.7: Полный перечень доступных имен специальных папок можно найти в базе знаний на сайте Microsoft (ссылка, на английском языке).
keep looking »