При работе с крупными контрагентами часто возникает ситуация, когда в рамках одного партнера ведется множество договоров. Более того, эти договоры могут курировать разные менеджеры или департаменты. Например, один менеджер отвечает за поставку стали, а второй — за поставку чугуна. В таких случаях стандартный акт сверки по всем договорам сразу или, наоборот, только по одному конкретному договору не решает задачу. Бухгалтеру или менеджеру требуется сформировать документ выборочно — строго по определенному списку договоров.
В этой статье мы подробно рассмотрим, как реализован выбор списка договоров в актах сверки взаиморасчетов в различных конфигурациях «1С:Предприятие 8», проанализируем возможные ошибки старых релизов и разберем пошаговые инструкции для настройки программы.
В ранних версиях программных продуктов на базе ERP-платформы (например, в конфигурациях 1С:Комплексная автоматизация версий 2.4.6, 2.4.7 и аналогичных версиях 1С:ERP и 1С:Управление торговлей 11) пользователи часто сталкивались с техническим ограничением.
При попытке использовать встроенную систему компоновки данных и механизм под названием «Расширенный отбор» непосредственно внутри формы документа Сверка взаиморасчетов, программа позволяла выбрать поле Договор и указать вид сравнения «В списке». Однако при нажатии кнопки заполнения табличная часть и печатная форма все равно заполнялись всеми существующими договорами контрагента, по которым были остатки. Настройки фильтрации игнорировались системой.
Выясним причину такого поведения системы. В устаревших архитектурных механизмах заполнения сверки запрос программного модуля жестко ориентировался на общую задолженность по контрагенту/партнеру в целом. Расширенный отбор компоновщика накладывался лишь на визуальное отображение некоторых элементов, но алгоритм проведения расчетов и вывода на печать игнорировал эти ограничения.
Начиная с версии 2.4.8 (и далее во всех актуальных версиях редакций 2.5 и выше), этот механизм был кардинально переработан разработчиками фирмы «1С». Ниже мы детально разберем, как пользоваться обновленным функционалом.
Рассмотрим порядок действий для получения выборочного акта сверки в современных релизах ERP-линейки. Начиная с версии 2.4.8, в системе появился удобный инструмент — Помощник создания сверок взаиморасчетов.
Разберем процесс по шагам:
Договор. Установим для него вид сравнения В списке и в появившейся таблице выберем только те договоры, по которым необходимо произвести сверку. Нажмем кнопку «Завершить редактирование» (или «ОК»).Если документ уже создан и вам требуется скорректировать список договоров в нем, мы можем открыть существующую сверку расчетов, перейти на вкладку настроек, скорректировать Расширенный отбор и перезаполнить документ по кнопке Заполнить. Теперь этот механизм работает без ошибок и корректно переносится в печатную форму акта.
В самой популярной бухгалтерской программе 1С:Бухгалтерия 3.0 интерфейс документов сверки отличается от ERP-систем. Здесь нет встроенного сложного конструктора расширенных отборов непосредственно в шапке документа, однако разработчики предусмотрели другой элегантный и простой способ решения этой задачи.
Проанализируем метод группировки договоров, который позволяет быстро формировать выборочную сверку:
Договор вместо конкретного договора выберем созданную нами группу договоров (папку).Программа автоматически проанализирует иерархию справочника договоров, найдет все элементы, лежащие внутри указанной папки, и заполнит табличную часть документа исключительно оборотами по этим договорам. Печатная форма также сформируется корректно.
Если вы работаете в устаревших конфигурациях, таких как 1С:Управление производственным предприятием (УПП) или старых редакциях Комплексной автоматизации 1.1, где функционал выбора списка договоров не предусмотрен, задачу можно решить небольшой доработкой кода.
Посмотрим на пример того, как можно изменить запрос заполнения документа, чтобы он учитывал список договоров. Обычно в процедурах заполнения используется передача параметра конкретного договора. Изменим логику на передачу массива или списка значений.
В модуле объекта документа найдем процедуру заполнения и заменим условие сравнения договора в запросе с равенства на проверку вхождения в список:
// Было в типовом коде:
// | ИГРАТЬ_ПО_ДОГОВОРУ:
// | ГДЕ Взаиморасчеты.ДоговорКонтрагента = &ПараметрДоговор
// Стало после доработки:
| ГДЕ Взаиморасчеты.ДоговорКонтрагента В (&СписокДоговоров)
В форму документа добавим элемент управления типа СписокЗначений с типом значения СправочникСсылка.ДоговорыКонтрагентов, чтобы пользователь мог интерактивно подбирать нужные соглашения перед заполнением табличной части.
Используя предложенные методики, вы сможете легко вести взаиморасчеты с контрагентами в любых разрезах аналитики, избегая ручной работы по удалению лишних строк из табличных частей документов сверки.