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