Изменение типа штрихкода

1. independ 1521 21.10.13 23:07 Сейчас в теме
Есть необходимость для штрихкодов с длиной 8 символов выставить признак EAN8 (вместо EAN13)
Но не работает
НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Для каждого Запись из НаборЗаписей Цикл
Запись.ТипШтрихкода="EAN8";
КонецЦикла;
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alexey_ 27 21.10.13 23:17 Сейчас в теме
Запись.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8;
3. independ 1521 22.10.13 10:28 Сейчас в теме
Да, так работает, но не могу сохранить изменения, пробовал 2 варианта
НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Для каждого Запись из НаборЗаписей Цикл
Если СтрДлина(СокрЛП(Запись.Штрихкод))=8 Тогда
Запись.Штрихкод=СокрЛП(Запись.Штрихкод);
Запись.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8;
Сообщить(Запись.ТипШтрихкода.Наименование+" "+Запись.Штрихкод);
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
Выдается сообщение ...уже имеет владельца...

Вариант 2 через ТЗ

НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
ТЗ=НаборЗаписей.Выгрузить();
Для Каждого СтрОтбор из ТЗ Цикл
Если СтрДлина(СокрЛП(СтрОтбор.Штрихкод))=8 Тогда
СтрОтбор.Штрихкод=СокрЛП(СтрОтбор.Штрихкод);
СтрОтбор.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8;
КонецЕсли;
КонецЦикла;
НаборЗаписей.Загрузить(ТЗ);
Ничего не выдается, но и не записывается
4. NightGod 22.10.13 10:33 Сейчас в теме
Выдается сообщение ...уже имеет владельца...
попробуй очистить потом записать
5. independ 1521 22.10.13 15:44 Сейчас в теме
Пробовал, с ТЗ,
НаборЗаписей.Очистить();
НаборЗаписей.Загрузить(ТЗ);
НаборЗаписей.Записать();

Не работает, тут надо как-то по другому зайти
6. kanalya 109 22.10.13 16:31 Сейчас в теме
Через ПолучитьМенеджерЗаписи() или СоздатьМенеджерЗаписи() надо делать
7. NightGod 22.10.13 17:45 Сейчас в теме
копируеш записи в ТЗ

i Как удалить все записи из независимого регистра сведений?
НаборЗаписей = РегистрыСведений.ТорговоеОборудование.СоздатьНаборЗаписей();
НаборЗаписей.Записать();

потом создаеш записи из своей ТЗ

Можно конечно проще через отборы - но там надо понимать что делаеш.
8. independ 1521 22.10.13 17:50 Сейчас в теме
Не работает

ШК = РегистрыСведений.Штрихкоды;
Выборка = ШК.Выбрать();
Пока Выборка.Следующий() Цикл
Если СтрДлина(СокрЛП(Выборка.Штрихкод))=8 Тогда
МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи();
МенеджерЗаписи.Штрихкод=СокрЛП(Выборка.Штрихкод);
МенеджерЗаписи.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8;
МенеджерЗаписи.Записать();
ОбработкаПрерыванияПользователя();
КонецЕсли;
КонецЦикла;

... уже имеет владельца ...
Думаю надо через справочник номенклатуры зайти, но пока умных мыслей нет...
9. kanalya 109 22.10.13 18:16 Сейчас в теме
ПередЗаписью в регистр Штрихкоды происходит проверка на наличие записи с записываемым штрихкодом.
Можно в процедуре ПередЗаписью в начало добавить
Если Замещение Тогда Возврат; КонецЕсли;

Можно временно отключить контроль уникальных штрихкодов (в настройках учета если в конфе если есть такая константа) или запись (записи) сначала удалить, а потом записать.
10. independ 1521 22.10.13 18:26 Сейчас в теме
Зашел через справочник номенклатуры
Номенклатура = Справочники.Номенклатура.Выбрать();

Пока Номенклатура.Следующий() Цикл

Наим = Номенклатура.Наименование;
Ссылка = Номенклатура.Ссылка;

НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Владелец.Установить(Ссылка);
НаборЗаписей.Прочитать();

Для каждого Запись из НаборЗаписей Цикл

Если СтрДлина(СокрЛП(Запись.Штрихкод))=8 Тогда
Запись.Штрихкод=СокрЛП(Запись.Штрихкод);
Запись.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8;
Сообщить(Запись.ТипШтрихкода.Наименование+" "+Запись.Штрихкод);
КонецЕсли;

КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;

Но увы ...уже имеет владельца...
Как вариант, считать данные, удалить, а потом добавить в РегистрыСведений.Штрихкоды
11. independ 1521 22.10.13 21:37 Сейчас в теме
Задачка решена
НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
//Выгружаем регистр штрихкодов в ТЗ и делаем, что нам нужно
ТЗ=НаборЗаписей.Выгрузить();
Для Каждого СтрОтбор из ТЗ Цикл
Если СтрДлина(СокрЛП(СтрОтбор.Штрихкод))=8 Тогда
СтрОтбор.Штрихкод=СокрЛП(СтрОтбор.Штрихкод);
СтрОтбор.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8;
Сообщить(СтрОтбор.ТипШтрихкода);
Сообщить(СтрОтбор.Штрихкод);
КонецЕсли;
КонецЦикла;
//Зачищаем в регистр штрихкодов
НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
//Грузим в регистр штрихкодов наши данные из ТЗ
НаборЗаписей.Загрузить(ТЗ);
НаборЗаписей.Записать();
Оставьте свое сообщение

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