8.х УТ единица хранения ссылвается на один и тот же элеме

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем atm779, 5 окт 2009.

  1. TopicStarter Overlay
    atm779
    Offline

    atm779 Опытный в 1С

    Регистрация:
    19 авг 2009
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26
    У нас на фирме девушка манагер прознала о Поиск и замена дублирующихся элементов и запустила обработку для Единицы Измерения. ПОлучилось так, что у большинства позиций номенклатуры теперь единица хранения ссылвается на один и тот же элемент. Это приводит к тому, что при наборе накладной, различные объекты номенклатуры выбиваются в одну строку накладной.

    Я так понимаю, что чтобы вернуть базу в рабочее состояние надо заново пересоздать элементы Единицы Измерения для каждой позиции номенклатуры. Как это можно сделать ?
  2. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Ну, писать обработку. Общий смысл которой - перебор элементов справочника номенклатуры, и создание новой единицы хранения.
  3. TopicStarter Overlay
    atm779
    Offline

    atm779 Опытный в 1С

    Регистрация:
    19 авг 2009
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26

    Код:
    выборка = Справочники.Номенклатура.Выбрать();
    Пока выборка.Следующий() = 1 Цикл
    тэ = Справочники.Номенклатура.НайтиПоКоду(выборка.Код).ПолучитьОбъект();
    номНазв = тэ.Наименование+"";
    тэ.Наименование = номНазв;
    Попытка 	тэ.Записать();
    Исключение 	счетчикПлохих = счетчикПлохих+1;Сообщить(тэ.Код+", "+тэ.Наименование);
    новЕдИзм = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
    новЕдИзм.Владелец = тэ.Ссылка;
    новЕдИзм.Наименование = "шт";
    новЕдИзм.Коэффициент = 1;
    новЕдИзм.Записать();
    тэ.ЕдиницаДляОтчетов = новЕдИзм.Ссылка;
    тэ.ЕдиницаХраненияОстатков = новЕдИзм.Ссылка;
    тэ.Записать();
    КонецПопытки;
    КонецЦикла;
    
    
    Все бы хорошо. Но вот одна проблема, каждый раз выдает ошибку
    Единица "шт" является единицей хранения остатков для "т 02"
    и уже участвует в товародвижении.
    Изменить эту единицу уже нельзя!

    Единственный способ, который я вижу: выбрать все документы товарооборота, снять с проведения, выполнить обработку и потом заново поставить пометку проведения.

    Есть ли более умный способ?
  4. iliandr
    Offline

    iliandr

    Регистрация:
    6 окт 2009
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    А кто мешает сначала закомментировать соответствующий фрагмент кода в процедуре ПередЗаписью модуля справочника "Номенклатура", затем запустить вашу обработку, а потом вернуть все, как было?
  5. TopicStarter Overlay
    atm779
    Offline

    atm779 Опытный в 1С

    Регистрация:
    19 авг 2009
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26
    Действительно так будет проще. =) Попробую. Спасибо Вам.
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Не надо ничего комментить - просто надо этот параметр программно сбросить и также программно включить.

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