Процедура КнопкаВыполнитьНажатие(Кнопка)
ЗаписиДляУдаления = Штрихкоды.НайтиСтроки(Новый Структура("Выбрать", Истина));
НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
Для Каждого Запись из ЗаписиДляУдаления Цикл
НаборЗаписей.Отбор.Владелец.Значение = Запись.Владелец;
НаборЗаписей.Отбор.Владелец.Использование = Истина;
НаборЗаписей.Отбор.Штрихкод.Значение = Запись.Штрихкод;
НаборЗаписей.Отбор.Штрихкод.Использование = Истина;
НаборЗаписей.Отбор.ТипШтрихкода.Значение = Запись.ТипШтрихкода;
НаборЗаписей.Отбор.ТипШтрихкода.Использование = Истина;
НаборЗаписей.Отбор.ЕдиницаИзмерения.Значение = Запись.ЕдиницаИзмерения;
НаборЗаписей.Отбор.ЕдиницаИзмерения.Использование = Истина;
НаборЗаписей.Отбор.ХарактеристикаНоменклатуры.Значение = Запись.ХарактеристикаНоменклатуры;
НаборЗаписей.Отбор.ХарактеристикаНоменклатуры.Использование = Истина;
НаборЗаписей.Отбор.СерияНоменклатуры.Значение = Запись.СерияНоменклатуры;
НаборЗаписей.Отбор.СерияНоменклатуры.Использование = Истина;
НаборЗаписей.Отбор.Качество.Значение = Запись.Качество;
НаборЗаписей.Отбор.Качество.Использование = Истина;
НаборЗаписей.Прочитать();
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
КонецЦикла;
ОбновитьТаблицуШтрихкоды();
КонецПроцедуры
Процедура КоманднаяПанельТоварыЗаполнитьТоварыПоОтбору(Кнопка)
Если Штрихкоды.Количество() > 0 Тогда
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Таблица ""Штрихкоды"" будет очищена. Продолжить?" , Режим, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ОбновитьТаблицуШтрихкоды();
КонецПроцедуры
Функция ОбновитьТаблицуШтрихкоды()
Штрихкоды.Очистить();
Построитель.Выполнить();
Выборка = Построитель.Результат.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = Штрихкоды.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
КонецЦикла;
КонецФункции
Процедура ПриОткрытии()
ИнициализацияПостроителя();
КонецПроцедуры
Процедура ИнициализацияПостроителя() Экспорт
Построитель.Текст=
"ВЫБРАТЬ
| ВложенныйЗапрос.Штрихкод КАК Штрихкод,
| Штрихкоды.Владелец КАК Владелец,
| Штрихкоды.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| Штрихкоды.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Штрихкоды.СерияНоменклатуры КАК СерияНоменклатуры,
| Штрихкоды.ТипШтрихкода КАК ТипШтрихкода,
| Штрихкоды.Качество КАК Качество
|{ВЫБРАТЬ
| Владелец,
| Штрихкод}
|ИЗ
| (ВЫБРАТЬ
| Штрихкоды.Штрихкод КАК Штрихкод,
| СУММА(1) КАК КоличествоШтрихкодов
| ИЗ
| РегистрСведений.Штрихкоды КАК Штрихкоды
|
| СГРУППИРОВАТЬ ПО
| Штрихкоды.Штрихкод
|
| ИМЕЮЩИЕ
| СУММА(1) > 1) КАК ВложенныйЗапрос
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
| ПО ВложенныйЗапрос.Штрихкод = Штрихкоды.Штрихкод
|{ГДЕ
| Штрихкоды.Владелец.* КАК Номенклатура,
| ВложенныйЗапрос.Штрихкод}
|
|УПОРЯДОЧИТЬ ПО
| Штрихкод";
Если Построитель.Отбор.Найти("Номенклатура")=Неопределено Тогда
Построитель.Отбор.Добавить("Номенклатура");
Построитель.Отбор.Номенклатура.Значение = Справочники.Номенклатура.ПустаяСсылка();
Построитель.Отбор.Номенклатура.Использование = Ложь;
Построитель.Отбор.Номенклатура.ВидСравнения = ВидСравнения.ВИерархии;
КонецЕсли;
Если Построитель.Отбор.Найти("Штрихкод")=Неопределено Тогда
Построитель.Отбор.Добавить("Штрихкод");
Построитель.Отбор.Штрихкод.Значение = "46";
Построитель.Отбор.Штрихкод.Использование = Истина;
Построитель.Отбор.Штрихкод.ВидСравнения = ВидСравнения.Содержит;
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанельШтрихкодыВыбратьВсе(Кнопка)
Для Каждого СтрокаТаблицы из Штрихкоды Цикл
СтрокаТаблицы.Выбрать = Истина;
КонецЦикла;
КонецПроцедуры
Процедура КоманднаяПанельШтрихкодыСнятьВсе(Кнопка)
Для Каждого СтрокаТаблицы из Штрихкоды Цикл
СтрокаТаблицы.Выбрать = Ложь;
КонецЦикла;
КонецПроцедуры