// Код для выполнения во внешней обработке 1С (УТ 11, КА 2, ERP)
Процедура НайтиИсториюКодаМаркировки(ИскомыйКод) Экспорт
// Очищаем код от лишних символов, если сканер передал криптохвост
// Обычно достаточно искать по первым 21-31 символам (GTIN + Серийник)
ЧастьКода = Лев(СокрЛП(ИскомыйКод), 31);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Штрихкоды.ЗначениеШтрихкода КАК ПолныйКод,
| Штрихкоды.Номенклатура.Наименование КАК Товар,
| Штрихкоды.Характеристика КАК Характеристика,
| Штрихкоды.Ссылка КАК СсылкаНаУпаковку
|ПОМЕСТИТЬ ВТ_Коды
|ИЗ
| РегистрСведений.ШтрихкодыУпаковокТоваров КАК Штрихкоды
|ГДЕ
| Штрихкоды.ЗначениеШтрихкода ПОДОБНО &ЧастьКода;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| "Заказ на эмиссию" КАК ТипОперации,
| Док.Ссылка КАК Документ,
| Док.Дата КАК Дата
|ИЗ
| Документ.ЗаказНаЭмиссиюКодовМаркировкиСУЗ КАК Док
|ГДЕ
| Док.Продукция.КодМаркировки В (ВЫБРАТЬ ПолныйКод ИЗ ВТ_Коды)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| "Маркировка (Ввод в оборот)",
| Док.Ссылка,
| Док.Дата
|ИЗ
| Документ.МаркировкаТоваровИСМП.Товары КАК Док
|ГДЕ
| Док.СсылкаНаУпаковку В (ВЫБРАТЬ СсылкаНаУпаковку ИЗ ВТ_Коды)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| "Перемещение товаров",
| Док.Ссылка,
| Док.Дата
|ИЗ
| Документ.ПеремещениеТоваров КАК Док
|ГДЕ
| Док.Ссылка В (
| ВЫБРАТЬ ВЫРАЗИТЬ(Связи.Ссылка КАК Документ.ПеремещениеТоваров)
| ИЗ РегистрСведений.ШтрихкодыУпаковокДокументов КАК Связи
| ГДЕ Связи.Упаковка В (ВЫБРАТЬ СсылкаНаУпаковку ИЗ ВТ_Коды)
| )
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| "Реализация клиенту",
| Док.Ссылка,
| Док.Дата
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Док
|ГДЕ
| Док.Ссылка В (
| ВЫБРАТЬ ВЫРАЗИТЬ(Связи.Ссылка КАК Документ.РеализацияТоваровУслуг)
| ИЗ РегистрСведений.ШтрихкодыУпаковокДокументов КАК Связи
| ГДЕ Связи.Упаковка В (ВЫБРАТЬ СсылкаНаУпаковку ИЗ ВТ_Коды)
| )
|
|УПОРЯДОЧИТЬ ПО
| Дата ВОЗР";
Запрос.УстановитьПараметр("ЧастьКода", "%" + ЧастьКода + "%");
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Сообщить("Никаких следов этого Data Matrix в базе 1С не найдено!");
Возврат;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Сообщить("--- ИСТОРИЯ ДВИЖЕНИЯ КОДА МАРКИРОВКИ ---");
Пока Выборка.Следующий() Цикл
Сообщить(Строка(Выборка.Дата) + " | " + Выборка.ТипОперации + " | Документ: " + Строка(Выборка.Документ));
КонецЦикла;
КонецПроцедуры