Имя: Пароль:
1C
 
Где в УТ 11.4 хранится информация о том какая маркируемая серия отгружена
,
0 ИС-2
 
naïve
14.12.21
13:51
С маркировкой не работал - сейчас сижу разбираюсь.

Нашел функцию ЗапросМаркируемойПродукцииРеализацияТоваровУслуг(Документ, ВидМаркируемойПродукции) - в ней получаются все данные по какие могут быть маркируемые позиции.
Судя по коду - 1C не хранит информацию о том какие штрих-кода отгружены, а получает методом ФИФО. И в своих системах я однозначно не могу вытащить эту информацию.

Я прав или ошибаюсь ?
1 ИС-2
 
naïve
14.12.21
13:55
регистр Пул кодов маркировки СУЗ (Регистры сведений) - пустой
2 mzelensky
 
14.12.21
13:56
(0) УТ 11.4 еще сырая!
3 Смотрящий
 
14.12.21
13:58
(2) Даже не представляешь насколько (
4 mzelensky
 
14.12.21
14:00
(3) В моей нетленке все учитывается и хранится :)
5 Deal with it
 
14.12.21
15:40
(0)Насколько я понимаю, при оформлении Реализации коды маркировки вносятся ручками или с помощью сканера. Автоматического подставления я еще не видел, если найдете расскажите)
6 Deal with it
 
14.12.21
15:41
Есть справочник "Штрихкоды упаковок", там вся маркировка. Но там только дата создания в 1с. Никаких признаков убыл и т.д. нет. Есть функционал проверки статуса кода, в том же справочнике.
7 ИС-2
 
naïve
15.12.21
08:13
т.е я ни как не смогу вытащить информацию о том какая маркировка была отгружена ?
8 Мимохожий Однако
 
15.12.21
08:24
(7) Если сможешь найти, где хранится эта информация, то сможешь и вытащить. В функции,которую уже нашёл скорее всего есть запрос,в тексте которого можно посмотреть откуда вытаскиваются данные.
9 ИС-2
 
naïve
15.12.21
11:43
запрос какой-то странный. Для всей номенклатуры просто добавляет все возможные ШК

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЕСТЬNULL(ШтрихкодыНоменклатуры.Штрихкод, "") КАК GTIN,
    Товары.Номенклатура КАК Номенклатура,
    Товары.Характеристика КАК Характеристика,
    ЕСТЬNULL(Серии.Серия, Товары.Серия) КАК Серия,
    ЕСТЬNULL(Серии.Количество, Товары.Количество) КАК Количество
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК Товары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Серии КАК Серии
        ПО Товары.Ссылка = Серии.Ссылка
            И Товары.Номенклатура = Серии.Номенклатура
            И Товары.Характеристика = Серии.Характеристика
            И Товары.Назначение = Серии.Назначение
            И Товары.Склад = Серии.Склад
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
        ПО Товары.Номенклатура = СправочникНоменклатура.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        ПО Товары.Номенклатура = ШтрихкодыНоменклатуры.Номенклатура
            И Товары.Характеристика = ШтрихкодыНоменклатуры.Характеристика
ГДЕ
    Товары.Ссылка = &ДокументСсылка
    И &УсловиеМаркируемаяПродукция
ИТОГИ ПО
    Номенклатура,
    Характеристика,
    GTIN
10 ИС-2
 
naïve
15.12.21
11:45
и в коде просто берет первую позицию GTIN

т.е все вычисляется на ходу

Процедура ЗаполнитьМаркируемуюПродукциюДокумента(Контекст, ВидМаркируемойПродукции, ТаблицаМаркируемойПродукции) Экспорт
    
    Если ТаблицаМаркируемойПродукции.Количество() > 0 Тогда
        РезультатЗапроса = ЗапросGTINпоТаблицеМаркируемойПродукции(ВидМаркируемойПродукции, ТаблицаМаркируемойПродукции);
        ТаблицаМаркируемойПродукции.Очистить();
    ИначеЕсли ТипЗнч(Контекст) = Тип("ДанныеФормыСтруктура") Тогда
        РезультатЗапроса = ЗапросМаркируемойПродукцииДанныеФормыСтруктура(Контекст, ВидМаркируемойПродукции);
    ИначеЕсли ИнтеграцияИСУТКлиентСервер.ЭтоДокументПоНаименованию(Контекст, "ВозвратТоваровОтКлиента") Тогда
        РезультатЗапроса = ЗапросМаркируемойПродукцииВозвратТоваровОтКлиента(Контекст, ВидМаркируемойПродукции);
    ИначеЕсли ИнтеграцияИСУТКлиентСервер.ЭтоДокументПоНаименованию(Контекст, "ПриобретениеТоваровУслуг") Тогда
        РезультатЗапроса = ЗапросМаркируемойПродукцииПриобретениеТоваровУслуг(Контекст, ВидМаркируемойПродукции);
    ИначеЕсли ИнтеграцияИСУТКлиентСервер.ЭтоДокументПоНаименованию(Контекст, "ВозвратТоваровОтКлиента") Тогда
        РезультатЗапроса = ЗапросМаркируемойПродукцииВозвратТоваровОтКлиента(Контекст, ВидМаркируемойПродукции);
    ИначеЕсли ИнтеграцияИСУТКлиентСервер.ЭтоДокументПоНаименованию(Контекст, "ЧекККМ")
        Или ИнтеграцияИСУТКлиентСервер.ЭтоДокументПоНаименованию(Контекст, "ЧекККМВозврат") Тогда
        РезультатЗапроса = ЗапросМаркируемойПродукцииЧекККМ(Контекст, ВидМаркируемойПродукции);
    ИначеЕсли ИнтеграцияИСУТКлиентСервер.ЭтоДокументПоНаименованию(Контекст, "РеализацияТоваровУслуг") Тогда
        РезультатЗапроса = ЗапросМаркируемойПродукцииРеализацияТоваровУслуг(Контекст, ВидМаркируемойПродукции);
    ИначеЕсли ИнтеграцияИСУТКлиентСервер.ЭтоДокументПоНаименованию(Контекст, "ВозвратТоваровПоставщику") Тогда
        РезультатЗапроса = ЗапросМаркируемойПродукцииВозвратТоваровПоставщику(Контекст, ВидМаркируемойПродукции);
    ИначеЕсли ИнтеграцияИСУТКлиентСервер.ЭтоДокументПоНаименованию(Контекст, "КорректировкаРеализации") Тогда
        РезультатЗапроса = ЗапросМаркируемойПродукцииКорректировкаРеализации(Контекст, ВидМаркируемойПродукции);
    Иначе
        Возврат;
    КонецЕсли;
    
    ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаНоменклатура.Следующий() Цикл
        ВыборкаХарактеристика = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаХарактеристика.Следующий() Цикл
            ПродукцияПоGTIN = ТаблицаМаркируемойПродукции.СкопироватьКолонки();
            СписокКодовGTIN = Новый Массив;
            
            ВыборкаGTIN = ВыборкаХарактеристика.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            Пока ВыборкаGTIN.Следующий() Цикл
                
                Если Не ЗначениеЗаполнено(ВыборкаНоменклатура.Номенклатура) Тогда
                    // Соответственно тут должен быть остаточный GTIN
                    Выборка = ВыборкаGTIN.Выбрать();
                    Пока Выборка.Следующий() Цикл
                        ЗаполнитьЗначенияСвойств(ТаблицаМаркируемойПродукции.Добавить(), Выборка);
                    КонецЦикла;
                    Продолжить;
                КонецЕсли;
                
                Если ПродукцияПоGTIN.Количество() = 0 Тогда
                    Выборка = ВыборкаGTIN.Выбрать();
                    Пока Выборка.Следующий() Цикл
                        ЗаполнитьЗначенияСвойств(ПродукцияПоGTIN.Добавить(), Выборка,, "GTIN");
                    КонецЦикла;
                КонецЕсли;
                
                Если МенеджерОборудованияКлиентСервер.ПроверитьКорректностьGTIN(ВыборкаGTIN.GTIN) Тогда
                    GTIN = ШтрихкодированиеИСКлиентСервер.GTINПоШтрихкодуEAN(ВыборкаGTIN.GTIN);
                    СписокКодовGTIN.Добавить(GTIN);
                КонецЕсли;
            КонецЦикла;
            
            Для Каждого СтрокаПродукцииПоGTIN Из ПродукцияПоGTIN Цикл
                ЗаполнитьЗначенияСвойств(ТаблицаМаркируемойПродукции.Добавить(), СтрокаПродукцииПоGTIN);
                СтрокаПродукцииПоGTIN.КодыGTIN.ЗагрузитьЗначения(СписокКодовGTIN);
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
    
КонецПроцедуры
11 ИС-2
 
naïve
15.12.21
12:36
получается, что как штрих-код отгрузили - он должен удалятся из регистра штрих-кодов ?
12 arsik
 
гуру
15.12.21
12:52
УТ 11.5 смотри
13 ИС-2
 
naïve
15.12.21
14:30
(12) совневаюсь, что будут обновлять
14 ИС-2
 
naïve
16.12.21
14:06
ап
15 ИС-2
 
naïve
18.12.21
09:22
у в базе заведены следующие коды

010460457207456621k3sqvaW/bonSw
010460457207456621L?87lRO/qo761

которые естественно не проходят контроль через метод ПроверитьКорректностьGTIN.

Они же могу являться кодами маркировки обуви ?
16 timurhv
 
18.12.21
10:57
(11) в типовых не хранятся марки, кроме заказанных в СУЗ. Что-то навертели, должен храниться только GTIN (РегистрСведений.ШтрихкодыНоменклатуры), вместо
010460457207456621k3sqvaW/bonSw
04604572074566 (с лидирующим 0 или нет не знаю)
А сами марки (GTIN с серией марки, не серия продукции) загружаться через ТСД.
17 timurhv
 
18.12.21
11:08
(16) Хотя нет, ошибся = хранится в справочнике. Такой бред, так и вижу как пачки сигарет агрегирую в блоки и записываю в справочник :)
https://its.1c.ru/db/metod81/content/7474/hdoc
18 ИС-2
 
naïve
24.12.21
09:15
С каждым днем все интереснее.

Отсканированные марки хранятся в ТЧ ШтрихкодыУпаковок документа реализации, но в ней нет ни каких привязок к строке номенклатуре. Судя по коду 1C просто распределяет эти штрих-коды по строчка сопоставляя по штрих-коду (находил функцию, сейчас него найти).

получается, что без алгоритма не найти какие штрих-кода отгружены
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.