8.х Програмное изменение РегистраСведений.Штрихкоды.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Demag, 18 фев 2014.

  1. TopicStarter Overlay
    Demag
    Offline

    Demag Опытный в 1С

    Регистрация:
    1 дек 2009
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Добрый день.
    Помогите разобраться как изменить РегистрСведений.Штрихкоды?
    После загрузке из табличного документа номенклатуры были загружены штрих-коды. Но в регистре штрих-кодов отсутствуют единицы измерения. В справочники они есть и в свойствах номенклатуры они тоже есть.
    Пытаюсь обработкой привязать единицы к штрих-кодам.
    Но при запуске, обработка выдаёт сообщение: "Штрихкод нннннннннннн уже имеет владельца "ИмяВладельца"".

    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Выборка = Справочники.Номенклатура.Выбрать();
    Пока Выборка.Следующий() Цикл
        Объект = Выборка.ПолучитьОбъект();
        НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
        НаборЗаписей.Прочитать();
        Для Каждого Запись Из НаборЗаписей Цикл
            РегистрВладелец = Запись.Владелец;
            Если НЕ ЗначениеЗаполнено(Запись.Штрихкод) Тогда
                Сообщить("Штрихкод не присвоен");
            Иначе
                ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(,РегистрВладелец.Ссылка);
                        Если ВыборкаЕдиниц.Следующий() Тогда
                            Запись.ЕдиницаИзмерения = ВыборкаЕдиниц.Ссылка;
                            НаборЗаписей.Записать();
                        КонецЕсли;
                  КонецЕсли;
        КонецЦикла;
    КонецЦикла;
    КонецПроцедуры
    
    Подскажите, что не так делаю?
    Заранее спасибо за помощь!
  2. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Гость Гость

    Все.
    1) Данный получайте запросом. В поля выборки сразу укажите и ссылку на номенклатуру и единицу измерения.
    2) Сначала нужно получить эту запись в регистре сведений, а затем перезаписать ее. В синтакс-помощнике почитайте про метод наборы записей регистров. Там есть примеры работы.
  3. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Не понимаю зачем у вас цикл по номенклатуре. Так же зачем ВЕСЬ набор перезаписывать каждый раз в цикле.
  4. TopicStarter Overlay
    Demag
    Offline

    Demag Опытный в 1С

    Регистрация:
    1 дек 2009
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Цикл по номенклатуре подразумевался для того чтобы получить через него ссылку на единицу хранения остатков.
    До этого имел дело только с 1с7.7. Поэтому не совсем ещё понимаю как это работает в 8-ке.
  5. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.174
    Симпатии:
    13
    Баллы:
    29
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
        НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
        НаборЗаписей.Прочитать();
        Для Каждого Запись Из НаборЗаписей Цикл
            Если НЕ ЗначениеЗаполнено(Запись.Штрихкод) Тогда
                Сообщить("Штрихкод не присвоен");
            Иначе
                Запись.ЕдиницаИзмерения = Запись.Владелец.ЕдиницаХраненияОстатков;
            КонецЕсли;
        КонецЦикла;
        НаборЗаписей.Записать();
    КонецПроцедуры
  6. TopicStarter Overlay
    Demag
    Offline

    Demag Опытный в 1С

    Регистрация:
    1 дек 2009
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Дмитрий, спасибо за ответ. Обработка проработала но в конце выдала такое сообщение:
    {Форма.Форма.Форма(12)}: Ошибка при вызове метода контекста (Записать)
    НаборЗаписей.Записать();
    по причине:
    Не удалось записать: "Штрихкоды"!

    И для каждого штрих-кода выдавалось сообщение:
    Штрихкод: 0130705036011723 уже имеет владельца "Скальпель ультразвуковой «Гармоник» с принадлежностями".

    Единицы не присвоились.
  7. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.174
    Симпатии:
    13
    Баллы:
    29
    тогда идем к истокам.. конфигурация какая ?
  8. TopicStarter Overlay
    Demag
    Offline

    Demag Опытный в 1С

    Регистрация:
    1 дек 2009
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    "Управление торговлей", редакция 10.3 (10.3.28.1)
  9. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.174
    Симпатии:
    13
    Баллы:
    29
    регистр откройте и сделайте отбор по этому ШК. сколько там таких записей ?
  10. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Там происходит проверка уникальности ШК по владельцу и самому ШК в событии "ПередЗаписью".
    Варианты:
    • переписать обработку, в которой вы будете читать каждую запись отдельно и корректировать ее.
    • включить в настройках параметров учета неуникальность ШК. Запустить обработку и вернуть настройку обратно
  11. TopicStarter Overlay
    Demag
    Offline

    Demag Опытный в 1С

    Регистрация:
    1 дек 2009
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Дело в том, что сообщение:
    Штрихкод: NNNNNNNNNNNNNNN уже имеет владельца "AAAAAAAAAAAAAAAAAAAAAA".
    Выводится для всех штрих-кодов.
  12. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Очистите все ШК, и заново попробуйте.
  13. TopicStarter Overlay
    Demag
    Offline

    Demag Опытный в 1С

    Регистрация:
    1 дек 2009
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Очистил, попробовал загрузить заново. ШК загружаю стандартной обработкой с диска ИТС. Вот картинка с настройками обработки:
    Obr.jpg

    После выполнения, в регистре ШК в колонке Единица пусто, но если щёлкнуть по ней, то можно выбрать единицу из справочника.
  14. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.174
    Симпатии:
    13
    Баллы:
    29
    единицу надо искать не по коду а по наименованию.
    а чем пост 10 вам не подошел ?
  15. TopicStarter Overlay
    Demag
    Offline

    Demag Опытный в 1С

    Регистрация:
    1 дек 2009
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    По наименованию тоже самое. А вот пост 10 я пропустил. Сейчас попробую.
  16. TopicStarter Overlay
    Demag
    Offline

    Demag Опытный в 1С

    Регистрация:
    1 дек 2009
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Пункт с отключение проверки уникальности сработал.
    Сейчас попробую на полной базе.
  17. TopicStarter Overlay
    Demag
    Offline

    Demag Опытный в 1С

    Регистрация:
    1 дек 2009
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Сработало.
    Большое всем спасибо за помощь!
  18. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29

Поделиться этой страницей