Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Товар+Склад


Автор: bucdapus 28.9.2007, 09:57
Делаю загрузку цен в 1с внешнего файла DBF.
но у меня не получается.Вот кусок обработки:
ИсхФ это файл дбф из которого берутся данные:

Цены.НайтиПоНаименованию(исхФ.PriceZ,1);
цены.использоватьВладельца(СпрН.текущийЭлемент());
       если Цены.Выбран()=0 тогда
          СпрН.выбратьЭлементы();
              Если СпрН.ПолучитЭлемент(СпрН.текущийЭлемент())>0 тогда
              Цены.Новый();
              ТипыЦен.ВыбратьЭлементы();
вот здесь требуется помощь?
далее из спр Типы цен надо выбрать одну цену PriceZ(она там уже внесена вручную)
и присвоить ее к ТипыЦен.ТекущийЭлемент=..............................
ну т.е чтобы именно эта цена стала текущим элементом.
              Цены.ТипЦен=ТипыЦен.ТекущийЭлемент();
              Цены.Записать();
              конецЕсли;
       конецЕсли;

Автор: Zero 28.9.2007, 12:33
Вот как надо:
Код

Ц.ИспользоватьВладельца(Ном.ТекущийЭлемент());
ТипЦен.ВыбратьЭлементы();
Пока ТипЦен.ПолучитьЭлемент() = 1 Цикл 
    Если Строка(ТипЦен)="<Нужный тип цен>" Тогда
        Ц.Новый();
        Ц.ТипЦен = ТипЦен.ТекущийЭлемент();   
        Ц.Валюта = Константа.ВалютаУпрУчета;
        Ц.Записать();
        Ц.Цена.Установить(НачНедели(ТекущаяДата()),ЦенаЗак);
        Ц.Единица.Установить(НачНедели(ТекущаяДата()),Ном.БазоваяЕдиница);
        Ц.Записать();
    КонецЕсли;
КонецЦикла;

Автор: bucdapus 29.9.2007, 17:30
Спасибо за помощь попробую сделать так как ты подсказал. если что то не получится то напишу еще.

Автор: bucdapus 1.10.2007, 12:57
У меня выкидывает ошибку!!!!!!!!!!
ERROR: Если Строка(ТипЦен)="<Нужный тип цен>" Тогда

ТипЦен - переменная не определена.
что нужно прописать

Автор: AkelaSQL 1.10.2007, 14:46
ТипЦен = СоздатьОбъект("Справочник.ТипыЦен");

Автор: bucdapus 2.10.2007, 08:17
Сделал но вылетела другая ошибка

Цены.Записать(); 
{C:\1C\ТИС\EXTFORMS\ЗАГРУЗКА ИЗ ФИРМЫ.ERT(427)}: Не выбран элемент справочника-хозяина! Элемент не может быть записан!
как его выбрать????????

Автор: AkelaSQL 2.10.2007, 12:46
Нужно перед тем как записать:

Цены.Владелец = СпрН.текущийЭлемент();

а вообще, судя по вопросам, нужно хоть какую-нибудь книжку по программированию 1С прочитать

Автор: Zero 2.10.2007, 17:32
Цитата(AkelaSQL @  2.10.2007,  12:46 Найти цитируемый пост)
Нужно перед тем как записать:

Цены.Владелец = СпрН.текущийЭлемент();

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

Ц.ИспользоватьВладельца(Ном.ТекущийЭлемент());
 заменяет эту команду.
В данном случае может вылетать такая ошибка, если текщий элемент номенклатуры, не содержит в выборке не одного элемента, т.е. если сами цены заданных типов именно для текущего элемента номенклатуры ещё не созданы.
Решение: их надо создать либо вручную либо программно.
Выше указанный кусок кода, обновляет цены а не добавляет новые.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)