Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 08:54

Копирование данных из одного регистра сведений в другой

Автор ahmeda, 27 окт 2010, 04:59

0 Пользователей и 1 гость просматривают эту тему.

ahmeda


progmikon

Запостите текст обработки, которой вы загружаете.

ahmeda

Цитата: progmikon от 27 окт 2010, 15:35
Запостите текст обработки, которой вы загружаете.

Я уже перепробывал кучу всяких, вот последний:

Процедура Кнопка4Нажатие(Элемент)
//   //рег=Метаданные.РегистрыСведений.ОтпускныеЦены;   
   Выборка = РегистрыСведений.ОтпускныеЦены.Выбрать();
   Текст=Новый ТекстовыйДокумент;    
   Текст.Прочитать("C:\11\текст.txt");
      Для НомерСтроки = 1 По Текст.КоличествоСтрок()Цикл
         Стр=Текст.ПолучитьСтроку(НомерСтроки);
         прНоменклатура=рег.Измерения.Номенклатура;
         ЕИ=рег.Измерения.ЕдиницаИзмерения;

         Позиция=Найти(Стр,Символ(34));
         ЕИ=Сред(Стр,1,Позиция-1);
         Цена=Сред(Стр,1,Позиция-1);
         прНоменклатура=Сред(Стр,Позиция+1);
         
         Номенклатура=СтрЗаменить(прНоменклатура,"%квч%",Символ(34));
         Сообщить(ЕИ+"-"+Номенклатура);
         
КонецЦикла;

progmikon

Перед циклом добавьте строку

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

В цикл добавьте строки для добавления в записей в регистр:

Запись = Регистр.Добавить();
Запись.Номенклатура = Справочники.Номенклатрура.НайтиПоНаименованию(Номенклатура);
...


и после цикла

Набор.Записать();

ahmeda

ошибку пишет:

{ОбщаяФорма.ТестФорма(59,13)}: Переменная не определена (Регистр)
         Запись = <<?>>Регистр.Добавить();

progmikon

Конечно. Это я описАлся.
Запись = Набор.Добавить();

ahmeda

progmikon, спасибо!

А как бы сделать так, чтоб не было ссылки на период, а то такую ошибку выдает:

{ОбщаяФорма.ТестФорма(67)}: Ошибка при вызове метода контекста (Записать): Запись не верна! Период не может быть пустым!: Доска кромленая :  : 01.01.0001 0:00:00 (Регистр сведений: Отпускные цены; Номер строки: 1)
Набор.Записать();

Для полноты картины текстовый файл так выглядит:
Доска кромленаям3"460"
Цементуп"190"
Погрузочно-разгрузочные рчас"320"

и т.д

А так в итоге выглядит код:

Процедура Кнопка4Нажатие(Элемент)
    рег=Метаданные.РегистрыСведений.ОтпускныеЦены;   
   Выборка = РегистрыСведений.ОтпускныеЦены.Выбрать();
   Текст=Новый ТекстовыйДокумент;    
   Текст.Прочитать("C:\11\текст.txt");
   Набор= РегистрыСведений.ОтпускныеЦены.СоздатьНаборЗаписей();
      Для НомерСтроки = 1 По Текст.КоличествоСтрок()Цикл
         Стр=Текст.ПолучитьСтроку(НомерСтроки);
         прНоменклатура=рег.Измерения.Номенклатура;
         ЕИ=рег.Измерения.ЕдиницаИзмерения;

         Позиция=Найти(Стр,Символ(34));
         ЕИ=Сред(Стр,1,Позиция-1);
         Цена=Сред(Стр,1,Позиция-1);
         прНоменклатура=Сред(Стр,Позиция+1);
         Запись = Набор.Добавить();
            Номенклатура=СтрЗаменить(прНоменклатура,"%квч%",Символ(34));
         Запись.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура);
         Сообщить(ЕИ+"-"+Номенклатура);
         
КонецЦикла;

Набор.Записать();



progmikon



progmikon

Ну тогда период нужно указать.
Если вы его не выгружали укажите, укажите произвольную. Как вариант ТекущаяДата().

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск