При разработке собственной конфигурации или доработке типовых решений начинающие разработчики часто сталкиваются с вопросом: как правильно отражать реализацию услуг в регистрах накопления? В отличие от материальных товаров, услуги нельзя положить на склад, заранее оприходовать на остаток или списать в минус. Разберем по шагам архитектуру учета услуг в платформе 1С:Предприятие, структуру справочников, виды регистров и алгоритмы проведения документов реализации.
Распространенное заблуждение заключается в том, что у услуг якобы нет количества. В учетной системе услуга может измеряться количественно: количество часов работы специалиста, число заправленных картриджей, квадратные метры уборки помещения или километры доставки. Однако между товаром и услугой есть принципиальное отличие:
Чтобы система понимала, как именно обрабатывать каждую позицию, в справочнике Номенклатура создается специальный признак разделения. Для этого добавим реквизит ТипНоменклатуры с типом данных ПеречислениеСсылка.ТипыНоменклатуры со значениями Товар и Услуга.
В типовых конфигурациях для удобства пользователей в документах реализации часто делают две отдельные табличные части — Товары и Услуги, либо используют единую табличную часть с динамическим управлением видимостью полей (например, для услуг скрывают реквизиты склада, ячейки или серии).
Главная ошибка при проектировании учета с нуля — попытка записывать все операции по товарам и услугам в один остаточный регистр. Проанализируем, почему так делать нельзя и как правильно распределить данные по регистрам накопления:
Остатки).Склад, Номенклатура. Ресурс: Количество.Обороты).Номенклатура, Контрагент, Организация. Ресурсы: Количество, СуммаВыручки, Себестоимость.Остатки).Рассмотрим пример программной обработки проведения документа реализации. В цикле обхода строк табличной части выполняется проверка типа номенклатуры:
Для Каждого СтрТЧ Из ТабличнаяЧасть Цикл
// Запись в оборотный регистр "Продажи" (для товаров и для услуг)
ДвижениеПродажи = Движения.Продажи.Добавить();
ДвижениеПродажи.Период = Дата;
ДвижениеПродажи.Номенклатура = СтрТЧ.Номенклатура;
ДвижениеПродажи.Контрагент = Контрагент;
ДвижениеПродажи.Количество = СтрТЧ.Количество;
ДвижениеПродажи.СуммаВыручки = СтрТЧ.Сумма;
// Складской учет только для материальных позиций
Если СтрТЧ.Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар Тогда
ДвижениеСклад = Движения.ТоварыНаСкладах.ДобавитьРасход();
ДвижениеСклад.Период = Дата;
ДвижениеСклад.Склад = Склад;
ДвижениеСклад.Номенклатура = СтрТЧ.Номенклатура;
ДвижениеСклад.Количество = СтрТЧ.Количество;
КонецЕсли;
КонецЦикла;
Перед формированием движений расхода по товарам обязательно накладывается контроль остатков с помощью объекта БлокировкаДанных, чтобы исключить списание в минус. Для услуг процедура проверки остатков на складе полностью пропускается.
Выясним, как формируется финансовый результат при оказании услуг:
Дт 62 - Кт 90.01, минуя материальные счета 41 (Товары) и 43 (Готовая продукция). Накопленные затраты списываются проводкой Дт 90.02 - Кт 20 (26, 44).Для корректного учета услуг в 1С достаточно помнить главное правило архитектуры: услуги отражаются в оборотных регистрах продаж и остаточных регистрах взаиморасчетов с клиентами с указанием количества и суммы, но полностью исключаются из регистров складских остатков.