Заполнение регистра сведений данными из другого регистра сведений
Необходимо создать обработку по дублированию набора записей из одного регистра сведений в другой
Делаю вот так:
ИсходнаяОрганизация = Объект.ИсходнаяОрганизация;
ЦелеваяОрганизация = Объект.ЦелеваяОрганизация;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РегистрСведений.Организация КАК Организация,
| РегистрСведений.ОбъектМетаданных КАК ОбъектМетаданных,
| РегистрСведений.Реквизит КАК Реквизит
|ИЗ
| РегистрСведений.РегистрСведений КАК РегистрСведений
|ГДЕ
| РегистрСведений.Организация = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",ИсходнаяОрганизация);
Выборка = Запрос.Выполнить().Выбрать();
НаборЗаписей = РегистрыСведений.РегистрСведений.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НоваяЗапись = НаборЗаписей.Добавить;
ЗаполнитьЗначенияСвойств(НоваяЗапись,Выборка);
НоваяЗапись.Организация = ЦелеваяОрганизация;
КонецЦикла;
НаборЗаписей.Записать(Ложь);
И ничего не происходит
Делаю вот так:
ИсходнаяОрганизация = Объект.ИсходнаяОрганизация;
ЦелеваяОрганизация = Объект.ЦелеваяОрганизация;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РегистрСведений.Организация КАК Организация,
| РегистрСведений.ОбъектМетаданных КАК ОбъектМетаданных,
| РегистрСведений.Реквизит КАК Реквизит
|ИЗ
| РегистрСведений.РегистрСведений КАК РегистрСведений
|ГДЕ
| РегистрСведений.Организация = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",ИсходнаяОрганизация);
Выборка = Запрос.Выполнить().Выбрать();
НаборЗаписей = РегистрыСведений.РегистрСведений.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НоваяЗапись = НаборЗаписей.Добавить;
ЗаполнитьЗначенияСвойств(НоваяЗапись,Выборка);
НоваяЗапись.Организация = ЦелеваяОрганизация;
КонецЦикла;
НаборЗаписей.Записать(Ложь);
И ничего не происходит
По теме из базы знаний
- Выгрузка-загрузка любых данных из 1С (и измененных) в XML между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Рисуем Робота в диаграмме Ганта с использованием Регистра расчетов и Плана видов расчета
- Заполнение способов отражения в бухучете (БГУ 2.0)
- Универсальная обработка корректировки справочников, документов и регистров (движений документов) 1С. УФ
- Надежная регистрация изменений. Версионирование объектов. Аудит. Все средствами SQL Server
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
"ВЫБРАТЬ
| &ЦелеваяОрганизация КАК Организация,
| РегистрСведений.ОбъектМетаданных КАК ОбъектМетаданных,
| РегистрСведений.Реквизит КАК Реквизит
|ИЗ
| РегистрСведений.РегистрСведений КАК РегистрСведений
|ГДЕ
| РегистрСведений.Организация = &Ссылка"
......
.......
НаборЗаписей.Отбор.Организация.Установить(ЦелеваяОрганизация);
........
НоваяЗапись = НаборЗаписей.Добавить();
..............
//НоваяЗапись.Организация = ЦелеваяОрганизация;// лишняя
Показать
Зайти в справку и посмотреть как надо делать
Пример:
КурсыВалют = РегистрыСведений.КурсыВалют;
НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
НаборКурсов.Отбор.Валюта.Установить(Доллар);
НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
НаборКурсов.Прочитать();
Если НаборКурсов.Количество() = 0 Тогда
НовыйКурс = НаборКурсов.Добавить();
НовыйКурс.Валюта = Доллар;
НовыйКурс.Период = ТекущаяДата();
ИначеЕсли НаборКурсов.Количество() = 1 Тогда
НовыйКурс = НаборКурсов[0];
Иначе
Предупреждение(НСтр("ru = 'Курс валюты задается один раз в день.';"
+ " en = 'Rate is set once a day.'"), 60);
Возврат;
КонецЕсли;
НовыйКурс.Курс = 31.44;
НовыйКурс.Кратность = 1;
НаборКурсов.Записать();
Сообщить(НСтр(ru = 'Курс '; en = 'Rate ')
+ СокрЛП(НовыйКурс.Валюта)
+ НСтр(ru = ' на сегодня: "+"; en = ' for today: ')
+ НовыйКурс.Курс + НСтр(ru = ' руб.'; en = ' roub.'"));
Пример:
КурсыВалют = РегистрыСведений.КурсыВалют;
НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
НаборКурсов.Отбор.Валюта.Установить(Доллар);
НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
НаборКурсов.Прочитать();
Если НаборКурсов.Количество() = 0 Тогда
НовыйКурс = НаборКурсов.Добавить();
НовыйКурс.Валюта = Доллар;
НовыйКурс.Период = ТекущаяДата();
ИначеЕсли НаборКурсов.Количество() = 1 Тогда
НовыйКурс = НаборКурсов[0];
Иначе
Предупреждение(НСтр("ru = 'Курс валюты задается один раз в день.';"
+ " en = 'Rate is set once a day.'"), 60);
Возврат;
КонецЕсли;
НовыйКурс.Курс = 31.44;
НовыйКурс.Кратность = 1;
НаборКурсов.Записать();
Сообщить(НСтр(ru = 'Курс '; en = 'Rate ')
+ СокрЛП(НовыйКурс.Валюта)
+ НСтр(ru = ' на сегодня: "+"; en = ' for today: ')
+ НовыйКурс.Курс + НСтр(ru = ' руб.'; en = ' roub.'"));
Попробуй сделать через менеджер записи
Пока Выборка.Следующий() Цикл
НоваяЗапись =РегистрыСведений.РегистрСведений.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(НоваяЗапись,Выборка);
НоваяЗапись.Организация = ЦелеваяОрганизация;
НоваяЗапись.Записать(Истина);
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот