Как программно создать документ Оказание производственных услуг в 1С:Бухгалтерия 3.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При разработке обработок, обменов или механизмов автоматического ввода документов в конфигурации «1С:Бухгалтерия предприятия 3.0» разработчики нередко сталкиваются с ситуацией: в пользовательском интерфейсе нужный документ отображается как «Оказание производственных услуг», но в дереве метаданных конфигуратора найти объект с таким именем не удается. Выясним причину этой проблемы, разберем способы сопоставления пользовательских названий с именами метаданных и рассмотрим пример правильного программного создания документа.

В чем причина несовпадения имен?

В платформе 1С:Предприятие каждый объект конфигурации имеет два основных текстовых идентификатора:

  1. Имя — системный идентификатор объекта, используемый во встроенном языке и при обращении к метаданным. Должен состоять только из букв, цифр и знаков подчеркивания без пробелов.
  2. Синоним — представление объекта для пользователей, которое отображается в командном интерфейсе, формах, меню функций и отчетах. Синоним может содержать любые символы, включая пробелы и знаки препинания.

В типовой конфигурации «1С:Бухгалтерия предприятия» документу с синонимом «Оказание производственных услуг» соответствует системное имя АктОбОказанииПроизводственныхУслуг.

Как быстро найти имя объекта в конфигураторе по его пользовательскому представлению

Рассмотрим несколько надежных способов, которые помогут быстро сопоставить синоним из интерфейса с именем объекта в дереве метаданных:

  1. Глобальный поиск по конфигурации. Откроем конфигуратор, вызовем глобальный поиск (комбинация клавиш Ctrl + Shift + F) и введем точную строку: Оказание производственных услуг. В результатах поиска будет видна строка описания метаданных с указанием реального имени объекта.
  2. Получение навигационной ссылки в режиме «1С:Предприятие». Откроем форму списка или форму самого документа в пользовательском режиме. Нажмем кнопку «Получить ссылку» (или сочетание клавиш Shift + F11). В буфер обмена скопируется строка вида e1cib/data/Документ.АктОбОказанииПроизводственныхУслуг?ref=..., из которой сразу видно точное имя метаданных.
  3. Окно «Функции для технического специалиста». Через меню «Сервис и настройки» перейдем в список всех доступных объектов. В строке поиска введем синоним — платформа сопоставит его с системным списком.
  4. Программный поиск через коллекцию метаданных. Если требуется получить имя метаданных динамически, используем перебор объектов:

Для Каждого МД Из Метаданные.Документы Цикл
    Если МД.Синоним = "Оказание производственных услуг" Тогда
        Сообщить("Имя документа в метаданных: " + МД.Имя);
        Прервать;
    КонецЕсли;
КонецЦикла;

Программное создание и заполнение документа

Посмотрим на пример создания нового документа через встроенный язык. Для корректной инициализации стандартных значений используем метод Заполнить(), после чего внесем обязательные реквизиты шапки и табличной части.


НовыйАкт = Документы.АктОбОказанииПроизводственныхУслуг.СоздатьДокумент();
НовыйАкт.Заполнить(Неопределено);

НовыйАкт.Дата = ТекущаяДата();
НовыйАкт.Организация = ВыбраннаяОрганизация;
НовыйАкт.Контрагент = ВыбранныйКонтрагент;
НовыйАкт.ДоговорКонтрагента = ВыбранныйДоговор;

// Заполнение производственной строки услуг
СтрокаУслуг = НовыйАкт.Услуги.Добавить();
СтрокаУслуг.Номенклатура = ВыбраннаяУслуга;
СтрокаУслуг.Количество = 1;
СтрокаУслуг.Цена = 10000;
СтрокаУслуг.Сумма = 10000;
СтрокаУслуг.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
СтрокаУслуг.СуммаНДС = 2000;

// Обязательные реквизиты производственного учета
СтрокаУслуг.СчетЗатрат = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство; // Счет 20.01
СтрокаУслуг.НоменклатурнаяГруппа = ВыбраннаяНоменклатурнаяГруппа;
СтрокаУслуг.ПодразделениеЗатрат = ВыбранноеПодразделение;
СтрокаУслуг.ПлановаяСтоимость = 8000; // Плановая себестоимость выпуска

// Запись и проведение документа
НовыйАкт.Записать(РежимЗаписиДокумента.Проведение);

Особенности производственного учета, о которых важно помнить

Проанализируем нюансы, критически важные для проведения документа и последующего закрытия месяца:

  1. Плановая себестоимость. В табличной части Услуги обязательно заполнение плановой себестоимости (реквизит ПлановаяСтоимость или расчет через плановую цену). Если этот показатель пропущен, а учетная политика организации предполагает учет выпуска по плановым ценам, регламентная процедура закрытия месяца не сможет корректно распределить фактические затраты со счета 20.01.
  2. Аналитика затрат. Заполнение реквизитов СчетЗатрат, НоменклатурнаяГруппа и ПодразделениеЗатрат строго обязательно. При их отсутствии проведение документа или последующий расчет себестоимости завершатся ошибкой.
  3. Списание материалов. Если при оказании услуги списываются производственные материалы, их можно внести непосредственно в табличную часть Материалы создаваемого документа (с указанием счета учета, например, 10.01), не оформляя отдельный документ списания.
  4. Включение функциональности. Документ предназначен для производственного блока. Если в базе отключена производственная функциональность (раздел «Главное» — «Функциональность» — вкладка «Производство»), документ будет заблокирован для работы в интерфейсе.

Типичные ошибки: с какими документами часто путают производственный акт

Разберем две распространенные ошибки при выборе типа документа для программного создания:

  1. Документ «Оказание услуг» (системное имя ОказаниеУслуг). Этот документ предназначен исключительно для пакетной выписки одинаковых услуг сразу нескольким контрагентам (например, регулярная абонентская плата). Он не формирует движений выпуска по счету 20.01 и не производит калькуляцию затрат.
  2. Документ «Реализация (акты, накладные, УПД)» (системное имя РеализацияТоваровУслуг). Используется для стандартной реализации услуг без привязки к производственному учету, когда нет необходимости вести учет расходов в разрезе номенклатурных групп по плановой стоимости.
← На главную