В приведенной статье постарался реализовать учет аналогов в УТ 11.1
Что реализовано:
- Загрузка аналогов из Кросс-файла. Пример файла в прикрепленном файле.
- Инструмент работы с аналогами.
Что нужно сделать.
- Создать справочник групп аналогов. Аналоги.
- Непереодический регистр сведений. СоответствиеАналогов. Измерение Номенклатура. Ресурс Аналоги (справочник Аналоги)
- Добавить на форму списка Номенклатуры Кнопку открыть аналоги со следующим кодом:
ПараметрыФормы = Новый Структура("Номенклатура", Элементы.СписокРасширенныйПоискНоменклатура.ТекущиеДанные.Ссылка); ОткрытьФорму("Обработка.СписокАналогов.Форма", ПараметрыФормы);
- Добавить на форму обработки ПодборТоваровВДокументПродажи Галку Аналоги и добавить следующие строки в модуль формы
&НаСервере Процедура ОбновитьПоАналогу(Ном) МассАналогов = Новый Массив; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоответствиеАналогов.Аналоги |ИЗ | РегистрСведений.СоответствиеАналогов КАК СоответствиеАналогов |ГДЕ | СоответствиеАналогов.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", Ном); Выборка = Запрос.Выполнить().Выбрать(); ТекАналог = Справочники.Аналоги.ПустаяСсылка(); Пока Выборка.Следующий() Цикл ТекАналог = Выборка.Аналоги; КонецЦикла; ЗапросАналоги = Новый Запрос; ЗапросАналоги.Текст = "ВЫБРАТЬ | СоответствиеАналогов.Номенклатура Номенклатура |ИЗ | РегистрСведений.СоответствиеАналогов КАК СоответствиеАналогов |ГДЕ | СоответствиеАналогов.Аналоги = &Аналоги"; ЗапросАналоги.УстановитьПараметр("Аналоги", ТекАналог); ВыборкаАналоги = ЗапросАналоги.Выполнить().Выбрать(); Пока ВыборкаАналоги.Следующий() Цикл МассАналогов.Добавить(ВыборкаАналоги.Номенклатура); КонецЦикла; ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(ЭтаФорма.СписокНоменклатура.Отбор, "Ссылка", МассАналогов, ВидСравненияКомпоновкиДанных.ВСписке, "Ссылка", Истина); //ПодборТоваровСервер.ПерейтиКСпискуНоменклатуры(ЭтаФорма); КонецПроцедуры &НаКлиенте Процедура АналогиПриИзменении(Элемент) ВыбНоменклатура = Элементы.СписокРасширенныйПоискНоменклатура.ТекущиеДанные.Ссылка; ОбновитьПоАналогу(ВыбНоменклатура); КонецПроцедуры
- Добавить в конфигурацию прикрепленные обработки СписокАналогов и ЗагрузкаАналогов
Инструкция по работе в прикрепленном файле.