gifts2017

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

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

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

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

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

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

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

 Итак.

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

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

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

Заходим:

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

Получилось: 

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

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

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

 

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

 

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

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

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

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

 

Жмем ОК.

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

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

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

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

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

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

 

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

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

 

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

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

 

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

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

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

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

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

 

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

 

Войля.

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

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

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

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

 

Проводим.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Виктор Маркевич (warrior1985) 16.12.13 11:37
Спасибо большое, возникла такая же необходимость, но в программе Управление строительной организацией, так что выручили своей инструкцией!
2. Павел Романов (Pawlick) 17.12.13 22:08
4. legzzi Пол (legzzi) 04.06.15 01:54
вопрос: в валовой прибыли будет показываться себестоимость по услугам?
5. legzzi Пол (legzzi) 04.06.15 10:11
В УТ 10.3. себестоимость реализованных услуг в реализации никогда не считалась. Но может быть у вас стало возможным посчитать? или может можете доработать?
6. Павел Романов (Pawlick) 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) 09.07.16 23:50
В 1С практически все возможно. Но это отдельная доработка не связанная с темой публикации. Вряд ли смогу заняться. В любом случае все начинается с ТЗ.