При работе в программе 1С:Розница 2.2 (базовая версия) пользователи часто сталкиваются с необходимостью кастомизации интерфейса под свои повседневные задачи. Один из популярных вопросов — как вывести контрагента отдельной колонкой в список документов Расходный кассовый ордер (РКО). Ситуация осложняется тем, что в базовой версии программы изменять конфигурацию напрямую запрещено на уровне лицензии, а стандартная кнопка "Изменить форму" в данном журнале документов часто недоступна или не решает задачу.
В этой статье мы подробно разберем, почему возникает эта сложность с технической точки зрения, проанализируем ограничения платформы и рассмотрим 4 практических способа решения этой задачи без внесения изменений в метаданные программы.
Прежде чем перейти к решениям, давайте выясним техническую причину проблемы. Документ Расходный кассовый ордер является многофункциональным. В зависимости от выбранного вида хозяйственной операции, получателями денежных средств могут выступать абсолютно разные аналитические разрезы:
Контрагенты.Физические лица.Из-за такого многообразия (полиморфизма данных) в структуре таблиц базы данных у документа РКО нет единого сквозного реквизита "Контрагент". Поля получателя меняются на форме динамически. По этой причине разработчики «1С» не могут просто вывести универсальную колонку "Контрагент" в стандартный динамический список — для большинства операций она оставалась бы пустой.
Давайте подробно разберем рабочие варианты обхода этого ограничения в пользовательском режиме.
Если нам не принципиально иметь именно отдельную колонку, но крайне важно быстро ориентироваться, кому именно ушли денежные средства, мы можем воспользоваться механизмом группировки динамического списка. Этот метод доступен в любой базовой версии и не требует программирования.
Разберем процесс настройки по шагам:
Расходные кассовые ордера (раздел Финансы — Расходные кассовые ордера).Контрагент или Получатель.После выполнения этих действий наш список документов визуально преобразится. Он будет разделен на группы по именам контрагентов. Раскрывая конкретного контрагента, мы увидим все относящиеся к нему РКО. Это значительно упрощает поиск документов по конкретному партнеру.
Проанализируем еще одну стандартную возможность системы. При создании и заполнении РКО (особенно на основании документов поступления) программа автоматически заполняет текстовое поле Основание.
Как правило, туда записывается текст вида: "Оплата поставщику [Наименование контрагента] по договору...". Поскольку колонка Основание выведена в стандартный список РКО по умолчанию, мы можем использовать ее для быстрой визуальной идентификации получателя денежных средств. Для этого достаточно настроить ширину данной колонки на форме или воспользоваться строкой быстрого поиска по этой колонке.
Если информация о контрагентах в связке с расходными ордерами нужна нам не для оперативного открытия документов, а для анализа платежей за период, то идеальным решением станет использование стандартных отчетов.
Рассмотрим, как настроить отчет Ведомость по денежным средствам для получения нужной информации:
Ведомость по денежным средствам в кассах.Документ-регистратор (это и будет наш РКО), а подчиненным полем выберем Контрагент (или Аналитика хозяйственной операции).В результате мы получим детальный структурированный отчет, где напротив каждого Расходного кассового ордера будет четко выведена сумма и конкретный контрагент, которому были выданы денежные средства. Этот вариант полностью заменяет необходимость доработки списка документов для целей контроля расчетов.
Хотя базовая версия 1С накладывает жесткие ограничения на редактирование метаданных конфигурации и не поддерживает работу сторонних расширений (за исключением официальных патчей от фирмы "1С"), она в полном объеме поддерживает работу с внешними отчетами и обработками.
Мы можем использовать внешнюю обработку, которая будет выступать в роли альтернативного, более удобного журнала документов. Программист может написать для нас простую обработку, динамический список которой будет формироваться на основе произвольного SQL-запроса, объединяющего таблицы РКО и справочник контрагентов.
Рассмотрим пример запроса, который может использоваться в такой внешней обработке для вывода контрагентов в единую колонку независимо от вида операции:
ВЫБРАТЬ
ДокументРКО.Ссылка КАК Ссылка,
ДокументРКО.Дата КАК Дата,
ДокументРКО.Номер КАК Номер,
ДокументРКО.Организация КАК Организация,
ДокументРКО.СуммаДокумента КАК СуммаДокумента,
ВЫБОР
КОГДА ДокументРКО.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику)
ТОГДА ДокументРКО.Контрагент
КОГДА ДокументРКО.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратПокупателю)
ТОГДА ДокументРКО.Контрагент
ИНАЧЕ "Физическое лицо / Прочее"
КОНЕЦ КАК ПолучательСредств,
ДокументРКО.Комментарий КАК Комментарий
ИЗ
Документ.РасходныйКассовыйОрдер КАК ДокументРКО
ГДЕ
ДокументРКО.ПометкаУдаления = ЛОЖЬ
Такая внешняя обработка регистрируется в базе через стандартный механизм (Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки). После этого пользователи смогут открывать альтернативный журнал РКО прямо из интерфейса программы, видеть красивую колонку с контрагентами, выполнять по ней поиск, фильтрацию и открывать нужные документы двойным кликом мыши.
Таким образом, даже при жестких ограничениях базовой версии программы «1С:Розница 2.2» у нас всегда есть выбор между простыми организационными обходами (группировки, отчеты) и созданием удобного внешнего инструмента, не нарушающего целостность программы и не препятствующего ее автоматическому обновлению.