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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
166 Сообщений
alex0402
56 Сообщений
MuI_I_Ika MuI_I_Ika
49 Сообщений
crow1983
35 Сообщений
LexaK
32 Сообщений
alexandr_ll
28 Сообщений
sertak sertak
25 Сообщений
Vzonder
21 Сообщений
BuhRust
17 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

  • Точка Гостей: 466
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal