7.7 Единицы измерения номенклатуры

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

  1. TopicStarter Overlay
    RDik
    Offline

    RDik

    Регистрация:
    8 окт 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    1с 7.7 Торговля и склад.
    Подскажите пожалуйста...
    После неудачного обновления номенклатуры и цен в справочнике сложилась ситуация, когда Базовая ед. измерения стоит у номенклатуры шт., а в подборе товара в графе ед. стоит <>... Но если открыть справочник единиц товара, то там имеются и шт. с коэффициентом 1 и пустая позиция у которой коэффициент тоже 1. Каким кодом можно привязать к товару нужную строчку со шт.?

    Вот такую штуку написал, но что- то не работает, к сожалению, 1с знаю плохо, подправьте , если не трудно...
    Код:
    СпрНом=СоздатьОбъект("Справочник.Номенклатура");
    СпрЕд=СоздатьОбъект("Справочник.Единицы");
    СпрОКЕИ=СоздатьОбъект("Справочник.ОКЕИ");
    Для i = 641830 По 641911 Цикл
    Если СпрНом.НайтиПоКоду(i,0) = 1 Тогда
    
    СпрЕд.ИспользоватьВладельца(СпрНом.ТекущийЭлемент());
    Если СпрОКЕИ.НайтиПоНаименованию("шт",0)=1 Тогда
    СпрЕд.ОКЕИ=СпрОКЕИ.ТекущийЭлемент();
    СпрЕд.Записать();
    КонецЕсли;
    СпрНом.БазоваяЕдиница=СпрЕд.ТекущийЭлемент();
    СпрНом.ОсновнаяЕдиница=СпрЕд.ТекущийЭлемент();
    СпрНом.Записать();
    КонецЕсли;
    КонецЦикла
    КонецПроцедуры
    
  2. sergejk74
    Offline

    sergejk74 Опытный в 1С

    Регистрация:
    15 ноя 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Т.е. базовая единица у тебя в справочнике стоит верная и ты хочешь основную единицу приравнять к базовой?
  3. TopicStarter Overlay
    RDik
    Offline

    RDik

    Регистрация:
    8 окт 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Да нет... в справочнике , в карточке товара стоит все правильно, и базовая и основная шт. стоят, но почему-то, при подборе, в колонке единицы у этих проблемных товаров стоит <> и когда жмешь на выбрать товар и открывается Выбрать кол-во и цену, в поле ед. тоже пусто...а когда из этого диалога заходишь в справочник единиц номенклатуры, там есть нормальная единица, но по умолчанию позиционируется на пустой единице. Вот... Сумбурно, но как точней описать проблему не знаю....
  4. Flamepayne
    Offline

    Flamepayne Опытный в 1С

    Регистрация:
    16 мар 2011
    Сообщения:
    113
    Симпатии:
    0
    Баллы:
    26
    То есть вам нужно, чтобы при выборе какой то единицы по умолчанию ставились "шт"?
  5. sergejk74
    Offline

    sergejk74 Опытный в 1С

    Регистрация:
    15 ноя 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    В качестве версии - может владельцы у единиц попутались?
  6. TopicStarter Overlay
    RDik
    Offline

    RDik

    Регистрация:
    8 окт 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Вот так еще могу описать проблему...Почему- то нет связи базовой единицы в карточке номенклатуры и той единицей которая видна в подборе и при выборе товара и которая берется вместе с товаром. Вне зависимости от того какая единица стоит в качестве базовой, в подборе она не появляется. И только когда я через диалоговое окно выбора количества и цены, вхожу в справочник единиц товара, то могу там выбрать нужную мне единицу, но в следующий раз при выборе товара все повторится, в списке подбора будет пустая единица. Естественно это проявляется только в испорченных товарах, у которых в справочнике единиц товара появилась в результате ошибки единица с пустым наименованием. Пометка ее на удаление не решает проблемы
  7. sergejk74
    Offline

    sergejk74 Опытный в 1С

    Регистрация:
    15 ноя 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Попробуй на копии такой код

    Код:
    	СпрНом=СоздатьОбъект("Справочник.Номенклатура");
    СпрЕд=СоздатьОбъект("Справочник.Единицы");
    Для i = 641830 По 641911 Цикл
    Если СпрНом.НайтиПоКоду(i,0) = 1 Тогда
    Найден = 0;
    СпрЕд.ИспользоватьВладельца(СпрНом.ТекущийЭлемент());
    СпрЕд.ВыбратьЭлементы();
    Пока СпрЕд.ПолучитьЭлемент() = 1 Цикл
    НаименованиеЕдиницыИзмерения = СокрЛП(СпрЕд.ОКЕИ.Наименование);
    если НаименованиеЕдиницыИзмерения = "шт" Тогда
    СпрНом.БазоваяЕдиница=СпрЕд.ТекущийЭлемент();
    СпрНом.ОсновнаяЕдиница=СпрЕд.ТекущийЭлемент();
    СпрНом.Записать();	
    Найден = 1;
    Сообщить("Для элемента с кодом "+i+" перезаписаны единицы измерения");
    КонецЕсли;	
    Если ПустоеЗначение(НаименованиеЕдиницыИзмерения)=1 Тогда
    СпрЕд.Удалить(0);
    КонецЕсли;
    КонецЦикла;
    Если Найден = 0 Тогда
    Сообщить("Для элемента с кодом "+i+" проблема не решена","!!!");
    КонецЕсли;
    Иначе
    Сообщить("Элемент с кодом "+i+" не найден");		
    КонецЕсли;
    КонецЦикла
    
  8. TopicStarter Overlay
    RDik
    Offline

    RDik

    Регистрация:
    8 окт 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Нет, к сожалению это не помогло...происходит перезапись шт, происходит пометка на удаление пустой единицы, но в подборе по прежнему у этого товара <>, а когда заходишь в спр. Ед, то позиционируется на пустой , помеченной на удаление единице. Удаление помеченных объектов не позволяет удалить эту пустую единицу...После принудительного удаления пустой единицы, в подборе в колонке ед. написал, что объект не найден и какие то 5 цифр. Самое плохое, что после этого вообще теперь не могу ничего с конфигурацией сделать, пишет ошибка блокировки данных. Монопольно в программу саму дает зайти, а конфигурацию сохранить не дает.. Бред какой то. Первый раз у меня такое...
  9. alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Вы пытаетесь сделать то, сами не зная что...
    Для начало в Отладчике посмотрите откуда берется это значение в подборе и по какой причине оно <..>

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