Удаление кодов маркировки из пула при вводе в оборот УТ11.5, как следствие невозможность повторной печати марки

1. ValeriyZ 19 18.08.23 09:03 Сейчас в теме
Доброго времени суток, коллеги. В определенный момент заметили, что пропала возможность повторно напечатать марки (текстиль). С чем связано - не уловили, возможно с обновлением.
Пошел по цепочке: заказ на эмиссию - родились коды в пуле. Можно печатать сколько угодно раз в регистре штрихкодов упаковок, а так же сбрасывая признак печати в заказе. Как только бухгалтер производит ввод марок в оборот - из пула они удаляются, соответственно печать более не возможна.
На сколько понимаю ситуацию, из пула они должны уходить регламентом. Регламент не настроен и не запущен. Уходят именно при отправке марки в оборот.
Что я упускаю в этой цепочке? Как ситуацию поправить/обойти? Организация сама производит, сама продает. Со временем марки затираются, повреждаются в торговом зале, нужна повторная печать. Ранее она была возможна.
Вознаграждение за ответ
Показать полностью
Найденные решения
10. ValeriyZ 19 11.11.23 08:51 Сейчас в теме +1 $m
Зачистка процедуры "ОчисткаПулаКодовМаркировкиПоОтчетуОНанесении" в модуле менеджера регистра "ПулКодовМаркировкиСУЗ" принесла результат - марки более из пула не удалаяются.
Попробовал поискать вызовы процедуры и отследить алгоритм "вверх" - без отладки нереально.
Заказчика устраивает, времени на отладку больше не дадут. Далее поработать по этому вопросу вряд ли получится.
Если кто найдет штатное решение - отпишите, думаю будет полезным.
satellate; user1253859; independ; solary; TigerS74; +5 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. newlogin1 18.08.23 11:05 Сейчас в теме
(1)Если регламетное вырублено, то вероятно при печати или при отправке документа данные трутся.
Где можно проверить:
1. Модуль менеджера регистра - гляньте там процедуру что-то вроде "УдалитьНапечатаное" или "Очистить"
2. Гляньте что вызывает регламетное задание - и поставьте там Возврат
3. Глобальный поиск по конфе по названию регистра
3. ValeriyZ 19 18.08.23 11:29 Сейчас в теме
(2) Регламент не включен, удаляет не он. При печати не трутся - только признак устанавливается.
Удаляются записи именно при обмене с ГИС, в доке ввода в оборот. Это то, что я сразу выяснил.

Если штатных способов нет - полезу в конфу. Не нашел инфу поиском, хотел предварительно узнать - это сейчас норма или что-то делается не так, может, к примеру опция какая не включена.
4. newlogin1 18.08.23 11:41 Сейчас в теме
(3)
Регламент не включен, удаляет не он

Это понятно, в
2. Гляньте что вызывает регламетное задание - и поставьте там Возврат
- имелось ввиду, что регл задание вызывает процедуру удаления лишних элементов, и скорее всего эта процедура вызывается и из других мест и всего-то надо там поставить возврат
5. ValeriyZ 19 18.08.23 12:40 Сейчас в теме
(4)
- имелось ввиду, что регл задание вызывает процедуру удаления лишних элементов, и скорее всего эта процедура вызывается и из других мест и всего-то надо там поставить возврат


По регламенту не совсем так. Регламент вызывает СВОЮ процедуру из менеджера, которая работает по всему регистру на предмет сравнения даты записи в пуле с константой времени хранения.
В данном же случае удаляются конкретные записи из дока обмена. Т.е., да, есть инициатор очистки, есть процедура очистки. Эта процедура либо в менеджере, либо где-то еще. Менеджер я сразу посмотрел. Процедур таких там несколько, но по названию не очень подходят. С инициаторами сложнее - глазами не везде понятны критерии вызова. Отладка сказала бы больше, но, там тонкие клиенты и неопределенное время ввода документов, в общем, проблематично на скорую руку. Пока надеюсь на штатное решение.
6. user629927_designer_79 31.10.23 18:25 Сейчас в теме
(5) Столкнулся с такой же проблемой, при распечатке этикеток в документе "Заказе на эмиссию" данные в пуле кодов маркировки затираются, удалось найти решение?
7. ValeriyZ 19 03.11.23 12:10 Сейчас в теме
(6) Нет, штатно не нашел. Клиента озадачил на совместную работу: нужно отладкой вывод из оборота погонять. Но, поток в магазине большой, ответственный все время найти не может, чтобы вместе посидеть.
9. ValeriyZ 19 09.11.23 11:04 Сейчас в теме
(8)
Проверь константу "Срок хранения использованных кодов маркировки в пуле, дней" вручную через функции для технического специалиста, там должен быть ноль.

Там ноль, проверил сразу. Кроме того, эта константа стреляет только если регламентное активно.

(6)
удалось найти решение?

Сегодня клиент выделил немного времени - получилось через отладку пару документов прогнать.
В модуле менеджера регистра "ПулКодовМаркировкиСУЗ" есть процедура "ОчисткаПулаКодовМаркировкиПоОтчетуОНанесении". Она вызывается при выводе марок и, судя по коду, очищает пул. Алгоритм вызова и условия вызова проверить пока не смог - не дали. Пока что заремарил содержимое процедуры, завтра обещают дать обратную связь. Отпишу по результату.
8. nikbarb 9 09.11.23 10:29 Сейчас в теме
Проверь константу "Срок хранения использованных кодов маркировки в пуле, дней" вручную через функции для технического специалиста, там должен быть ноль. Или даже сам туда ноль поставь и запиши, там есть кнопка.
Прикрепленные файлы:
10. ValeriyZ 19 11.11.23 08:51 Сейчас в теме +1 $m
Зачистка процедуры "ОчисткаПулаКодовМаркировкиПоОтчетуОНанесении" в модуле менеджера регистра "ПулКодовМаркировкиСУЗ" принесла результат - марки более из пула не удалаяются.
Попробовал поискать вызовы процедуры и отследить алгоритм "вверх" - без отладки нереально.
Заказчика устраивает, времени на отладку больше не дадут. Далее поработать по этому вопросу вряд ли получится.
Если кто найдет штатное решение - отпишите, думаю будет полезным.
satellate; user1253859; independ; solary; TigerS74; +5 Ответить
11. lifeforeve 29.06.24 20:07 Сейчас в теме
так работает
Процедура ОчисткаПулаКодовМаркировкиПоОтчетуОНанесении(КодыМаркировки) Экспорт
	
	Блокировка = Новый БлокировкаДанных();
	ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПулКодовМаркировкиСУЗ");
	ЭлементБлокировки.ИсточникДанных = КодыМаркировки;
	ЭлементБлокировки.ИспользоватьИзИсточникаДанных("КодМаркировки", "КодМаркировки");
	ЭлементБлокировки.ИспользоватьИзИсточникаДанных("ХешСуммаКодаМаркировки", "ХешСуммаКодаМаркировки");
	ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
	Блокировка.Заблокировать();
	
	//Набор = РегистрыСведений.ПулКодовМаркировкиСУЗ.СоздатьНаборЗаписей();
	//Для Каждого СтрокаПулаКодовМаркировки Из КодыМаркировки Цикл
	//	Набор.Отбор.КодМаркировки.Установить(СтрокаПулаКодовМаркировки.КодМаркировки);
	//	Набор.Отбор.ХешСуммаКодаМаркировки.Установить(СтрокаПулаКодовМаркировки.ХешСуммаКодаМаркировки);
	//	Набор.Записать();
	//КонецЦикла;
	
КонецПроцедуры
Показать
user844293; +1 Ответить
12. user1943702 21.08.24 11:58 Сейчас в теме
Если предусмотренного решения нет, можно добавить расширение с константой "ОчищатьПулКодовМаркировкиПоОтчетуОНанесении", потом

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

 &Вместо("ОчисткаПулаКодовМаркировкиПоОтчетуОНанесении")
Процедура _ОчисткаПулаКодовМаркировкиПоОтчетуОНанесении(КодыМаркировки) Экспорт

	Если Константы.ОчищатьПулКодовМаркировкиПоОтчетуОНанесении.Получить() Тогда

		ПродолжитьВызов();

	КонецЕсли;

КонецПроцедуры

#КонецЕсли
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот