В практике работы с программой 1С:Бухгалтерия предприятия 3.0 (версия ПРОФ) часто возникает необходимость вести учет в разрезе подразделений, аналогично тому, как это реализовано в версии КОРП. Одной из самых востребованных задач является добавление возможности выбора подразделения непосредственно на форме документа «Реализация (акты, накладные, УПД)». Рассмотрим подробно, как решить эту задачу, начиная от простых настроек интерфейса и заканчивая программной доработкой системы.
Для начала проанализируем ситуацию: почему реквизит Подразделение присутствует в структуре конфигурации, но не отображается на форме? В платформе 1С:Предприятие 8.3 за это отвечает механизм функциональных опций. Если определенная опция отключена в настройках системы, связанные с ней элементы интерфейса (поля, кнопки, вкладки) автоматически скрываются, чтобы не перегружать пользователя лишней информацией.
В случае с подразделениями ключевую роль играет функциональная опция ИспользоватьПодразделенияОрганизаций. Разберем по шагам, как активировать этот функционал стандартными средствами без изменения кода.
Прежде чем открывать Конфигуратор, нам необходимо проверить настройки параметров учета в режиме «1С:Предприятие». Проанализируем стандартный путь настройки:
Важно понимать, что эта настройка влияет в первую очередь на счета учета затрат (20, 25, 26, 44). Однако именно она является «триггером» для включения константы, управляющей видимостью поля в документах. Если после включения этой опции поле в реализации не появилось, нам потребуется более детальная настройка через «Все функции» (или «Функции для технического специалиста»).
Иногда стандартные интерфейсы настройки не позволяют активировать нужную опцию в полном объеме. В этом случае рассмотрим ситуацию редактирования констант напрямую. Для этого выполним следующие действия:
Зайдем в меню «Сервис» — «Параметры» и включим отображение команды «Функции для технического специалиста» (в старых версиях — «Все функции»). В открывшемся окне найдем раздел Константы и найдем там константу, отвечающую за использование подразделений. Установив ее значение в «Истина», мы сообщаем системе, что данный аналитический разрез должен быть доступен.
Если после всех манипуляций в пользовательском режиме поле Подразделение так и не появилось на форме «Реализации», значит, в коде формы прописаны дополнительные условия. Разберем, как программист может принудительно вывести этот реквизит.
В конфигурации 1С:Бухгалтерия 3.0 управление элементами часто происходит в модуле формы в процедуре ПриСозданииНаСервере. Система программно проверяет права пользователя, настройки организации и значения функциональных опций. Рассмотрим пример кода, который можно использовать в расширении для управления видимостью:
&После("ПриСозданииНаСервере")
Процедура ИТ_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Снимаем ограничение видимости, наложенное функциональной опцией
Элементы.ПодразделениеОрганизации.Видимость = Истина;
Элементы.ПодразделениеОрганизации.Доступность = Истина;
// Если поле находится в группе, проверяем видимость родительской группы
Элементы.ГруппаШапкаВерхПраво.Видимость = Истина;
КонецПроцедуры
При использовании этого метода мы гарантируем, что поле будет отображаться всегда, независимо от того, какие константы установлены в базе данных.
Выясним причину, по которой простого вывода поля на форму недостаточно для полноценного учета. В версии ПРОФ справочник ПодразделенияОрганизаций является простым иерархическим списком. В нем отсутствуют такие критически важные для обособленных подразделений реквизиты, как КПП, Адрес и Код ИФНС.
Если ваша задача — подстановка КПП подразделения в печатную форму счета-фактуры или УПД, нам придется выполнить следующие доработки:
ПодразделенияОрганизаций через расширение нужно добавить реквизит КПП (строка, 9 знаков).Хозрасчетный. В версии ПРОФ для счетов расчетов с контрагентами (60, 62) субконто «Подразделение» обычно не предусмотрено, поэтому данные будут храниться только в шапке документа.
// Пример логики выбора КПП для печати
Если ЗначениеЗаполнено(Шапка.Подразделение) И ЗначениеЗаполнено(Шапка.Подразделение.КПП) Тогда
ДанныеПродавца.КПП = Шапка.Подразделение.КПП;
Иначе
ДанныеПродавца.КПП = Шапка.Организация.КПП;
КонецЕсли;
Настоятельно рекомендуем не снимать основную конфигурацию с поддержки. Все описанные манипуляции — добавление реквизитов в справочник, изменение видимости на форме и корректировку печатных форм — следует выполнять в Расширении конфигурации.
Проанализируем преимущества этого подхода:
Важно понимать последствия: в версии ПРОФ механизмы формирования «Книги продаж» и декларации по НДС не умеют «подхватывать» добавленные вами КПП подразделений. Если ваша организация обязана подавать декларации по месту нахождения обособленных подразделений, то простой доработки формы реализации будет недостаточно. В этом случае система будет по-прежнему собирать все данные по КПП головной организации. Для автоматизации налоговой отчетности по филиалам переход на версию КОРП является наиболее оправданным и экономически выгодным решением, так как стоимость разработки аналогичного функционала «с нуля» в ПРОФ-версии значительно превысит разницу в стоимости лицензий.
Однако, если цель — исключительно управленческий учет и корректное отображение данных в печатных формах для клиентов, предложенный вариант с расширением и принудительным выводом реквизита на форму является рабочим и эффективным инструментом.