Добавляем поле в список номенклатуры на УФ.

На примере конфигурации Розница 2.2

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

Выполним задачу, которая часто встает перед пользователями конфигурации Розница 2.х. Добавим в список номенклатуры поле, которое будет показывать остатки товара, а затем подкрасим эту строчку, если остатки конкретной позиции будут больше 0.

Что ж,.. приступим. Открываем до боли родной конфигуратор, разворачиваем Справочник номенклатура и 2 клика на форме списка.

В окне реквизитов вызываем свойства Списка (его тип, как мы видим, Динамический список). И в Настройке списка смело жмем «Открыть»

И вот он перед нами Запрос, который формирует этот Список. Здесь же есть и конструктор запросов для редактирования.

Мы хотим в числе прочих колонок видеть колонку со складскими остатками. Стало быть делаем ЛЕВОЕ СОЕДИНЕНИЕ с Регистром накопления ТоварыНаСкладах.Остатки

В Рознице 2.2 учитывается Резервирование товара из общих остатков, поэтому, чтобы получить именно свободные остатки, нужно вычесть Резерв, что и видно из вышеприведенного рисунка.

Запускаем базу в пользовательском режиме и вуаля — наша колонка.

Ну и немного для удобства. Возвращаемся в Конфигуратор к свойствам реквизита Список. Открываем опять наш динамический список и вверху видим закладку *Настройки*. В ней выбираем закладку *Условное оформление*. Добавляем параметр (слабожелтый цвет):

Выставляем условие: ДоступныеОстатки < 5

Накладываем это условие на некоторые поля:

И опять вуаля:

Казалось бы все просто и изящно. Однако в некоторых решениях на основе Розницы 2.2, как-то, например, продукты 1С-Раруса:

  • 1С Розница. Магазин автозапчастей;
  • 1С Розница. Книжный магазин ;
  • 1С Розница. Аптека;
  • 1С Розница. Магазин бытовой техники др.

Так вот здесь конструкция закручена более кучеряво. И Динамический список редактировать там совершенно бесполезно.

Запускаем Отладчик, идем по процедурам и вот оно где спрятано: ОбщийМодуль — ор_ОбщегоНазначенияСервер

Процедура УстановитьСвойстваСпискаНоменклатурыНаФорме(Форма) Экспорт

И вот именно здесь нужно редактировать Запрос. Конкретно в том случае, с которым столкнулся я, мне пришлось сделать вот такую вставку:

| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК ВНаличии,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыНаСкладахОстатки.РезервОстаток, 0) КАК Доступно
|ИЗ
| Справочник.Номенклатура КАК СправочникНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков, "+?(РежимОтбораОстатков = 1, "Склад.Магазин = &Магазин", "")+")

Как говорится, нет таких крепостей, которые не брали бы большевики.

[contact-form-7 404 "Not Found"]