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

Мигрирование данных из реквезитов в регистр

Автор ferrari314, 09 фев 2015, 10:42

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

ferrari314

Создаю внешнюю обработку для мигрирования рекезитов в регистр
Не робит нифига. Где я порю чушь?
&НаКлиенте
Процедура ВзятьБуковки(Команда)
Выполнитьзахват();   
КонецПроцедуры

&НаСервере
Функция Выполнитьзахват()

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Организации.НастройкаДаты,
| Организации.ОсновнойВариант,
|ИЗ
| Справочник.Организации КАК Организации";
Выборка = Запрос.Выполнить().Выгрузить();
Этаформа.Список = выборка;
КонецФункции

&НаСервере
Процедура ОтдатьБуковки(Команда)
           
Рег = РегистрыСведений.СведенияОрганизаций.СоздатьМенеджерЗаписи();
Для каждого строка из ЭтаФорма.Список цикл
        Рег.НастройкаДаты = Список.Параметры("НастройкаДаты");
    Рег.ОсновнойВариант = Список.Параметры("ОсновнойВариант"); 
  Рег.Записать();
КонецЦикла;

// Вставить содержимое обработчика.
КонецПроцедуры

cska-fanat-kz

1. какая структура регистра?
2. &НаСервере
Процедура ОтдатьБуковки(Команда)
если это обработчик команды то он выполняется только на клиенте, в крайнем случае с уходом на сервер внутри.
3. Вот дэ фак из вис?
Список.Параметры("НастройкаДаты");
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

ferrari314

1.Регистр с одним измерением организация и ресурсами по полям
2. Поправил.Теперь итератор не определен:(  (ни на клиенте ни на сервере)
3. Зис из сотая попытка записать данные в регистр хоть ломом по серверу.

&НаКлиенте
Процедура ВзятьБуковки(Команда)
Выполнитьзахват();   
//Элементы.Список.Обновить();
КонецПроцедуры

&НаСервере
Функция Выполнитьзахват()
        //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

//Макет = ВнешниеОбработки.ПереносДанных.ПолучитьМакет("Макет");
//Запрос = Новый Запрос;
//Запрос.Текст =
// "";

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Организации.НастройкаДаты,
| Организации.ОсновнойВариант,
|ИЗ
| Справочник.Организации КАК Организации";

Выборка = Запрос.Выполнить().Выгрузить();
Этаформа.Список = выборка;
КонецФункции

&НаКлиенте
Процедура ОтдатьБуковки(Команда)

//Выполнитьзахват(выборка);

Для каждого строка из ЭтаФорма.Список цикл
         
ОтдатьСервуБуковки();
КонецЦикла;

// Вставить содержимое обработчика.
КонецПроцедуры

&НаСервере
Процедура ОтдатьСервуБуковки()
          Рег = РегистрыСведений.СведенияОрганизаций.СоздатьМенеджерЗаписи();
  Рег.НастройкаДаты = Список.Параметры("НастройкаДаты");
    Рег.ОсновнойВариант = Список.Параметры("ОсновнойВариант");
     
 
 

 
  Рег.Записать();

КонецПроцедуры

cska-fanat-kz

1. раз у вас есть измерение "организация", то в Выполнитьзахват() надо запросом еще и ссылку на организацию получить
2. на клиенте в ОтдатьБуковки() просто вызываете серверный метод ОтдатьБуковкиНаСервере() и уже на сервере крутите цикл по ТЧ Список
НаборЗаписей = РегистрыСведений.СведенияОрганизаций.СоздатьНаборЗаписей();
Для каждого СтрокаТЧ Из Объект.Список Цикл
    Запись = НаборЗаписей.Добавить();
    Запись.Организация = СтрокаТЧ.Организация;
    Запись.НастройкаДаты= СтрокаТЧ.НастройкаДаты;
    Запись.ОсновнойВариант= СтрокаТЧ.ОсновнойВариант;
КонецЦикла;
Попытка
    НаборЗаписей.Записать();
Исключение
КонецПопытки;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

ferrari314

Вот такая хрень

&НаКлиенте
Процедура ВзятьБуковки(Команда)
Выполнитьзахват();   
//Элементы.Список.Обновить();
КонецПроцедуры

&НаСервере
Функция Выполнитьзахват()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
    |   Организации.Ссылка,
| Организации.НастройкаДаты,
| Организации.ИспользоватьУполномоченных,
| Организации.ПриказНаПодпись,
|ИЗ
| Справочник.Организации КАК Организации";
Выборка = Запрос.Выполнить().Выгрузить();
Этаформа.Список = выборка;
КонецФункции

&НаКлиенте
Процедура ОтдатьБуковки(Команда)         
ОтдатьСервуБуковки();
КонецПроцедуры

&НаСервере
Процедура ОтдатьСервуБуковки()
Рег = РегистрыСведений.СведенияОрганизаций.СоздатьНаборЗаписей();
Для каждого СтрокаТЧ из Список цикл
      Запись = Рег.Добавить();
      Запись.АвторЗаписи = СтрокаТЧ.АвторЗаписи;
  Запись.НастройкаДаты = СтрокаТЧ.НастройкаДаты;
    Запись.ИспользоватьУполномоченных = СтрокаТЧ.ИспользоватьУполномоченных;
      Запись.ПриказНаПодпись = СтрокаТЧ.ПриказНаПодпись;
КонецЦикла;  
Попытка
Рег.Записать();
Исключение
    КонецПопытки;
КонецПроцедуры


На "взять буковки" пишет ошибку ожидается выражение ВЫБРАТЬ, пофиг прописал этот же запрос прямо в дин. список
На "отдать буковки" пишет итератор не определен.

Теги:

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

Рейтинг@Mail.ru

Поиск