Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
25 Июл 2017, 11:36
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Перенос данных по com соединению  (Прочитано 828 раз)

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

Оффлайн 19yellow92

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-17
  • Сайт: 
Всем здравствуйте. Задача такая: Имеется 2 идентичные базы УПП. Необходимо перенести движения с Р.С.Работники организаций в Р.С.Работники (данный регистр не заполнялся, он пустой). Без создания документов. Есть аналогичная обработка, с переносом аналитики вроде.
Выгрузить набор регистраторов с базы источника вроде получилось. Загвоздка в том, чтоб загрузить теперь данные в приемник. Т.к. в данных регистрах есть такие реквизиты, как подразделения и должности. в которых используются 2 разных справочника: в первом Подразделения организаций и Должности организаций, во втором Подразделения и Должности. Данные справочники можно сравнить по коду и наименованию. Эти данные у них одинаковые. Только как можно это сделать???
Процедура по выгрузке регистраторов из исочника:
Процедура ЗагрузитьДанныеВТаблицы(Кнопка)     
    ТаблицаРегистраторовКОМ.Очистить();//загрузка наборов движений РСРаботникиОрганизации
    ИндексТаблицаРегистраторовКОМ = 0;
   
    База = Неопределено;
    Соединение = Неопределено;
   
    Если Не ПроверкаПодключения(База, Соединение) Тогда
        Возврат;
    КонецЕсли;
   
    Попытка
        ЗапросКОМ = Соединение.NewObject("Запрос");
        ЗапросКОМ.Текст =
        "ВЫБРАТЬ
        |   РаботникиОрганизаций.Регистратор.Ссылка КАК Регистратор,
        |   РаботникиОрганизаций.Регистратор.Представление КАК Представление
        |ИЗ
        |   РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        |ГДЕ
        |   РаботникиОрганизаций.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
        |
        |УПОРЯДОЧИТЬ ПО
        |   РаботникиОрганизаций.Регистратор.Дата
        |АВТОУПОРЯДОЧИВАНИЕ";
   
    ЗапросКОМ.УстановитьПараметр("ДатаНачала", ДатаНачало);
    ЗапросКОМ.УстановитьПараметр("ДатаОкончания", ДатаОкончание);
   
    ВыборкаКОМ = ЗапросКОМ.Выполнить().выбрать();
 
        Пока ВыборкаКОМ.Следующий() Цикл
            НовыйРегистратор = ТаблицаРегистраторовКОМ.Добавить();
            НовыйРегистратор.Ссылка = ВыборкаКОМ.Регистратор;
        КонецЦикла;
       
    Исключение
        ТекстОшибки = СформироватьТекстСообщения(ОписаниеОшибки());
        Сообщить (ТекстОшибки);
        Предупреждение (ТекстОшибки);
        Отказ = Истина;
        Возврат
    КонецПопытки;   
    Если ТаблицаРегистраторовКОМ.Количество() > 0 Тогда
       
        СравнитьИсточникПриемник();
        ЭлементыФормы.Пропустить.Доступность    = Истина;
        ЭлементыФормы.Записать.Доступность      = Истина;
    Иначе
        Предупреждение ("Не обнаружено объектов для записи!");
        ЭлементыФормы.Пропустить.Доступность    = Ложь;
        ЭлементыФормы.Записать.Доступность      = Ложь;
    КонецЕсли;
   
КонецПроцедуры

Остальные процедуры взяты из похожей обработки, они не изменены, если необходимы просто для примера и ознакомления:

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

Процедура загружает данные в приемник

Процедура  ЗагрузитьВсеНажатие(Элемент)
   
    Сообщить("Обработка запущена: "+ТекущаяДата()+", пожалуйста, дождитесь окончания. " );
               
   
    ТаблицаРегистраторовКОМ.Очистить();
    ИндексТаблицаРегистраторовКОМ = 0;
   
    База = Неопределено;
    Соединение = Неопределено;
   
    Если Не ПроверкаПодключения(База, Соединение) Тогда
        Возврат;
    КонецЕсли;
   
    Попытка
        ЗапросКОМ = Соединение.NewObject("Запрос");
        ЗапросКОМ.Текст =
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |   НалоговыйДвиженияССубконто.Регистратор.Ссылка КАК Регистратор
        |ИЗ
        |   РегистрБухгалтерии.Налоговый.ДвиженияССубконто(
        |           &нПериода,
        |           &кПериода,
        |           СчетДт.Ссылка = &СчетОтбора
        |               ИЛИ СчетКт.Ссылка = &СчетОтбора,
        |           ,
        |           ) КАК НалоговыйДвиженияССубконто
        |
        |УПОРЯДОЧИТЬ ПО
        |   НалоговыйДвиженияССубконто.Регистратор.Дата";
       
        ЗапросКОМ.УстановитьПараметр("СчетОтбора",Соединение.ПланыСчетов.Налоговый.НайтиПоКоду(Счет.Код));
        ЗапросКОМ.УстановитьПараметр("нПериода", ДатаНачало);
        ЗапросКОМ.УстановитьПараметр("кПериода",ДатаОкончание); 
       
        ВыборкаКОМ = ЗапросКОМ.Выполнить().выбрать();       
       
        Пока ВыборкаКОМ.Следующий() Цикл
            НовыйРегистратор = ТаблицаРегистраторовКОМ.Добавить();
            НовыйРегистратор.Ссылка = ВыборкаКОМ.Регистратор;
        КонецЦикла;
       
    Исключение
        ТекстОшибки = СформироватьТекстСообщения(ОписаниеОшибки());
        Сообщить (ТекстОшибки);
        Предупреждение (ТекстОшибки);
        Отказ = Истина;
        Возврат
    КонецПопытки;   
   
    //если регистраторов больше 0
    Если ТаблицаРегистраторовКОМ.Количество() > 0 Тогда
       
        СравнитьИсточникПриемникТЗ();
    Иначе
        Сообщить("Не обнаружено объектов для записи!");
    КонецЕсли;
    Сообщить("Обработка завершена:  "+ТекущаяДата());   
   
   
КонецПроцедуры


Оффлайн Hedinnk

  • **
  • Сообщений: 84
  • РЕПУТАЦИЯ: 14
  • КПД: 17%
  • Регистрация: 2016-03-04
  • Сайт: 
  • Профессия: Программист 1С
Для создания записи в регистре с подчинением регистратору, наличие в базе реально существующего документа обязательно. Без создания документа тут не обойтись
Добавлено: 17 Апр 2016, 10:48

И ещё, у регистров сведений не может быть движений
На форуме есть волшебная кнопка "Сказать СПАСИБО"

Оффлайн 19yellow92

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-17
  • Сайт: 
Для создания записи в регистре с подчинением регистратору, наличие в базе реально существующего документа обязательно. Без создания документа тут не обойтись
Добавлено: 17 Апр 2016, 10:48

И ещё, у регистров сведений не может быть движений

А если я в кадровых документах добавлю регистратор Р.С. Работники? И при создании или изменении этих документов, соответсвеннол будут добавляться новые записи в этом регистре? Тогда как предыдущие записи добавить, без перепроведения документов?

Оффлайн Hedinnk

  • **
  • Сообщений: 84
  • РЕПУТАЦИЯ: 14
  • КПД: 17%
  • Регистрация: 2016-03-04
  • Сайт: 
  • Профессия: Программист 1С
Обработкой :)
На форуме есть волшебная кнопка "Сказать СПАСИБО"


Теги:
 

Поиск по бае данных,(полнотекстовый поиск)

Автор kot_ooРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3635
Последний ответ 19 Май 2014, 15:40
от kot_oo
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1725
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Задваивание" данных в отчете

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 6413
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
Куда сохраняются данные в режиме работы клиент при выгрузке данных обработкой "Универсальный обмен данными в формате XML"

Автор xDDРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 6354
Последний ответ 13 Ноя 2014, 08:23
от cska-fanat-kz
Как перенести конфу базы данных на новую конфу?

Автор dim3740Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 11
Просмотров: 10462
Последний ответ 23 Авг 2010, 15:41
от mohock

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

alex0402
92 Сообщений
oleg-x
83 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
67 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
44 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
Dethmontt Dethmontt
22 Сообщений
lansy
22 Сообщений
wise wise
21 Сообщений

* Кто онлайн

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal