Состав объектовконфигурации и их структуру необходимо самостоятельно определить и реализовать для каждого задания. По умолчанию, если другое не следует из условия задачи, каждая микрозадача, характеризующая отдельный вид учета, считается никак не связанной с другими микрозадачами.
Обязательная отладка процедур обработки проведения (программных модулей объектов). В том случае, когда в задании приведен пример с заполненными в режиме «1С:Предприятия» данными, желательно производить отладку решения именно на данных из этого примера.
Решение должно одинаково работать как в тонком, так и в веб-клиенте, если иное не оговорено условием конкретной задачи.
В решении должен использоваться управляемый режим работы с транзакционными блокировками.
При решении задач, относящихся к бухгалтерскому учету, следует учитывать, что пользователь может ввести проводку с любой корреспонденцией счетов с помощью специального документа «Ручная операция». Сам документ «Ручная операция» должен быть создан в конфигурации для любой задачи по бухгалтерскому учету.
При решении задач рекомендуется использовать документацию, входящую в комплект стандартной поставки:
1С:Предприятие 8.3. Руководство пользователя;
1С:Предприятие 8.3. Руководство администратора;
1С:Предприятие 8.3. Руководство разработчика;
1С:Предприятие 8.3. Описание встроенного языка;
1С:Предприятие 8.3. Клиент-серверный вариант. Руководство администратора
Объектная модель:
Избегать получения избыточной информации:
например, при программном выводе строк передавать (вызывать) не ссылки на объекты, а их представления или наименования);
при обращении к реквизиту через вторую точку учитывать, что это – запрос к базе (например, ТекСтрокаТЧ.Номенклатура.ВидНоменклатуры: первая точка – запрос к табличной части, вторая – к базе) (нужно избегать обращения через две точки в цикле).
Дополнительная информация объектов ссылочного типа реализуется:
через реквизиты - одно значение;
через табличные части - несколько значений, список.
Регистры:
У всех регистров накопления и регистров бухгалтерии флаг «Разрешить разделение итогов» должен быть установлен (вкладка «Прочее» регистра).
При работе с несколькими регистрами:
если только чтение – то можно обрабатывать сразу все;
если чтение и запись:
работать последовательно с каждым регистром;
блокировку на регистры ставить тоже последовательно.
Если работа с регистром остатков, то код должен предусматривать корректный вывод регистра в 0 (вывод всех ресурсов регистра в 0, например, количество 0, сумма 0), для чего обязательно:
в таблице движений должны быть операции Приход и Расход;
Приход и Расход должны быть по одним и тем же измерениям;
правильное заполнение ресурсов (по умолчанию контроль остатков делается всегда!), если несколько регистров остатков (а них – несколько ресурсов) – то по каждому реализовать контроль остатков.
При расчете сумм учитывать «проблему копеек».
Запросы и отчеты:
При отборе информации из табличной части документа обязательно ставить отбор на ссылку (т.е. условие отбора – ссылка на конкретный документ).
Для ресурсов регистров накопления прописываем функцию ЕСТЬNULL(<ресурс>, 0), например, ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0).
У виртуальных таблиц обязательно проверять параметры виртуальной таблицы.
Формы отчетов должны выглядеть так, как это указано в задании.
Работа с документами:
Документы, используемые в решении, могут быть неоперативно перепроведены задним числом.
Данные в табличных частях документов могут содержать строки с одинаковыми значениями (так называемые «дубли строк»).
Если поле документа содержит числовые данные – при делении проверять на 0 или установить проверку заполнения.
Ошибки:
нельзя без необходимости выгружать результат запроса в таблицу значений;
указание в настройках документов типа «Бухгалтерская операция» разрешения на проведение;
получение актуальных остатков , а не на момент времени документа (хотя и оптимально, выше производительность, но есть риск получения некорректных данных);
если проведение неоперативное – получение остатков на дату документа, а не на момент времени документа.