Ведение учета услуг в разрезе характеристик для УТ 10.3

Опубликовал Павел Романов (Pawlick) в раздел Программирование - Практика программирования

Известно, что одной из преимуществ конфигураций 1С на управляемых формах по сравнению с конфигурациями на обычных формах – это возможность ведения учета услуг в разрезе характеристик.
Многим предприятиям эта возможность нужна как воздух, например стоимость установки кондиционера зависит от его мощности, а стоимость ремонта зависит от сложности. Кроме того необходимо получать отчеты в разрезе характеристик услуг и т.д. Многие мои клиенты перешли с УТ 10 на УТ11 либо на УНФ только из за этой возможности. Но переход на новую учетную программу - это всегда ПРОЕКТ. Стоимость апгрейта, переноса данных,  переобучения персонала, а как на счет временных и нервных затрат? А тут еще все эти разговоры про "сырые" конфигурации... В общем, с невеселых раздумий на эту тему и началась эта история.

Все мы «с детсва» знаем: В Кофигурации Управление тогровлей 10.3 не ведется учет услуг в разрезе характеристик. Мне вот всегда было интересно - почему? Что мешает «включить» эту возможность?  Какая разница механизму плана видов характеристик к какому объекту лепить доп свойство??? Справочнику Характеристики номенклатуры наплевать кто является владельцем его «сокровищ» … А ключевой документ ценообразования – установка цен номенклатуры - при проведении  вообще ни разу не проверил к какому типу номенклатуры - товару или услуге - принадлежит характеристика. Так почему нельзя добавить в УТ 10.3 возможность создания характеристик услуги?

...А собственно почему нелья? 

 Сразу оговорюсь, что к сожалению  подобную доработку не осуществить без «проблем» для  возможности штатного обновления конфигурации, поэтому внедрять или нет решать Вам, на основании анализа всех возможных последствий и необходимости подобного внедрения.

В подобной ситуации "горячим головам" пальцы чешуться напомнить: ни откладывай backup на завтра если можешь сделать backup сегодня ;)

 Итак.

 Для начала в качестве "подопытного кролика" добавляем в справочник номенклатура услугу:

«Ремонт бытовой техники»

Добавим характеристики.

Заходим:

Операции - План видов характеристик - Свойства объектов - Справочник Характеристики номенклатуры

 И добавляем новое свойство:

Категория сложности

И три значения этого свойства:

Первая категория сложности

Вторая категория сложности

Третья категория сложности

 

На этом подготовка заканчивается, открываем конфигуратор:

Как известно, в карточке номенклатуры с типом Услуга отсутствует флаг ведения учета по доп характеристикам.

Изменим это «недоразумение».

Открываем форму элемента справочника Номенклатура.

В процедуре УстановитьВидимость находим строку:

УстановитьСвойствоВТЗ(ТаблицаРеквизитов, "ВестиУчетПоХарактеристикам", "ДоступностьСистемная", (Товар Или Комплект) И мИспользоватьХарактеристики);

И в скобке после слова Комплект добавляем « Или Услуга».

Получилось: 

УстановитьСвойствоВТЗ(ТаблицаРеквизитов, "ВестиУчетПоХарактеристикам", "ДоступностьСистемная", (Товар Или Комплект Или Услуга) И мИспользоватьХарактеристики); 

Собственно на этом доработка элемента справочника закончена.

Обновляемся, проверяем:

 

Теперь и услуги могут иметь характеристики ;)

 

Далее в конфигураторе открываем документ Реализация товаров и услуг.

Переходим на закладку Данные и в табличной части услуги добавляем новый реквизит:

ХарактеристикаНоменклатуры, с типом значения СправочникСсылка. ХарактеристикиНоменклатуры.

Открываем форму документа. На закладке "Услуги" на табличной части щелкаем правой кнопкой мыши и выбираем пункт «размещение данных». В появившемся списке ставим галку ХарактеристикаНоменклатуры

 

Жмем ОК.

В конце табличной части появилась колонка Характеристика номенклатуры. Перетаскиваем её поближе к колонке номенклатура (так что бы была как в товарах – справа от номенклатуры)

//infostart.ru/upload/iblock/569/РТИУ%202.png 

Теперь дважды щелкаем по полю ввода Характеристики и в свойстве связь по владельцу устанавливаем связь по полю номенклатура табличной части услуги:

 //infostart.ru/upload/iblock/751/РТИУ%203.png

Открываем модуль объекта документа Реализация товаров и услуг, находим процедуру ПодготовитьТаблицыДокумента

 В этой процедуре находим текст

 

// Получим необходимые данные для проведения и проверки заполнения данных по табличной части "Услуги".

СтруктураПолей = Новый Структура();

 

После него добавляем строку:

СтруктураПолей.Вставить("ХарактеристикаНоменклатуры"  , "ХарактеристикаНоменклатуры");

 

Обновляем конфигурацию, запускаем в режиме 1С:Предприятия.

Создаем Реализацию товаров и услуг. Добавляем услугу «Ремонт бытовой техники», и характеристику «первой категории сложности». Цену пока ставим вручную. Пусть будет 250 р. Проводим.

Теперь создадим еще одну (для более красивого отчета) Реализацию услуги «Ремонт бытовой техники» с характеристикой «второй категории сложности». Цену ставим 750 р. Проводим.

Переходим Отчеты – Продажи - Анализ продаж – Продажи

В поле группировка строк Добавляем Номенклатура и Характеристика номенклатуры.

 

Нажимаем Сформировать.

 

Войля.

Теперь сделаем так, чтобы на услуги с разными характеристиками можно было назначить разные цены.

Собственно назначить цены можно уже сейчас:

Открываем документ Установка цен номенклатуры.

Подбираем нашу услугу «Ремонт бытовой техники» с характеристикой  «первой категории сложности», и с характеристикой «второй категории сложности», устанавливаем цену для  «Ремонт бытовой техники» +  «первой категории сложности» - 500 руб, а  для  «Ремонт бытовой техники» +  «второй категории сложности»  - 1000 руб.

 

Проводим.

Но для того чтобы установленные цены подбирались в документ Реализация необходимо еще кое что.

Переходим в конфигуратор:

Для возможности подстановки установленной в конфигурации цены на выбранную характеристику услуги необходимо создать еще две колонки табличной части услуги: ЕдиницаИзмерения с типом значения СправочникСсылка.ЕдиницыИзмерения и колонку Коэффициент с типом значения число. Создаем по аналогии выше. Переходим на форму, размещаем колонки ЕдиницаИзмерения и Коэффициент в табличной части. Далее в свойствах обоих колонок снимаем галку Видимость: эти две колонки непосредственно не будут использоваться при работе с документом, но они необходимы модулю ценообразования для штатной отработки процедуры получения цены номенклатуры с характеристикой.

Создаем обработчик события ПриИзменении поля вода характеристики. Добавляем процедуру

Процедура УслугиХарактеристикаНоменклатурыПриИзменении(Элемент)

            СтрокаТабличнойЧасти = ЭлементыФормы.Услуги.ТекущиеДанные;

            СуммаСтроки = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество;

            ПриИзмененииХарактеристикиНоменклатурыТоваров(СтрокаТабличнойЧасти);

            // Рассчитать реквизиты табличной части.

            ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

            ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

КонецПроцедуры

Это штатная процедура обработки изменения ТЧ товары, "оптимизированная" под услуги…  =)

Вот и все. Обновляемся. Проверяем.

Создаем документ Реализация товаров и услуг. В табличной части Услуги добавляем первую строку с услугой   «Ремонт бытовой техники» и характеристикой  «первой категории сложности», и вторую строку с услугой  «Ремонт бытовой техники» и характеристикой «второй категории сложности». Проводим. Формируем отчет. Наслаждаемся.

 

Таким образом можно доработать каждый необходимый документ, обработку ввода на основании,  обработку подбора и т.д. Согласен, не все так просто и при необходимости подключения функционала по всей конфигурации потребуется много времени и, возможно, денег.  Но для профессионала подобная доработка вполне поплечу, включая последующие обновления.

А для не профессионала  материальне затраты на внедрение данной возможности и последующие обновления все равно на порядок ниже материальных и моральных затрат на внедрение новой учетной системы. 

За последние пол года учет услуг в разрезе характеристик был внедрен нами на двух реально работающих пердприятиях. Можно сказать "идет тестирование". Оставляйте отзывы, будем рады любым мнениям.

См. также

Комментарии
1. Виктор Маркевич (warrior1985) 63 16.12.13 11:37 Сейчас в теме
Спасибо большое, возникла такая же необходимость, но в программе Управление строительной организацией, так что выручили своей инструкцией!
2. Павел Романов (Pawlick) 8 17.12.13 22:08 Сейчас в теме
3. art (next_) 19.02.15 10:39 Сейчас в теме
4. legzzi Пол (legzzi) 04.06.15 01:54 Сейчас в теме
вопрос: в валовой прибыли будет показываться себестоимость по услугам?
5. legzzi Пол (legzzi) 04.06.15 10:11 Сейчас в теме
В УТ 10.3. себестоимость реализованных услуг в реализации никогда не считалась. Но может быть у вас стало возможным посчитать? или может можете доработать?
6. Павел Романов (Pawlick) 8 04.06.15 10:20 Сейчас в теме
Этот механизм сам по себе не формирует себестоимость услуги, поэтому в валовая прибыль не рассчитывается. Он лишь включает штатный механизм дополнительной детализации продаж услуг. Вопрос о себестоимости услуг - вопрос очень сложный, т.к. в общем случае неизвестно что относить к себестоимости услуги, и от предприятия к предприятию эти правила могут очень сильно отличаться. Именно поэтому 1С и не ввела понятия "себестоимость услуги" в УТ10. У себя на предприятии я это реализовал, но это не значит что этот механизм применим к другому предприятию. Пишите в личку, возможно помогу.
7. Юрий Номоконов (gakk1963) 05.02.16 14:51 Сейчас в теме
Открываем модуль объекта документа Реализация товаров и услуг, находим процедуру ПодготовитьТаблицыДокумента

столкнулся с тем что в модуле нет этой процедуры
1С:Предприятие 8.3 (8.3.5.1517)
"Управление торговлей", редакция 10.3 (10.3.32.2)
8. Oscar Oscar (OscarTT) 09.07.16 14:10 Сейчас в теме
А возможно обязательное указание характеристики, чтобы при записи элемента проверялось?
9. Павел Романов (Pawlick) 8 09.07.16 23:50 Сейчас в теме
В 1С практически все возможно. Но это отдельная доработка не связанная с темой публикации. Вряд ли смогу заняться. В любом случае все начинается с ТЗ.