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

Автор Тема: Соответствия регистров  (Прочитано 2613 раз)

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

Оффлайн 19yellow92

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-17
  • Сайт: 
Всем снова здравствуйте. За ранее прошу не нервничать по поводу недопонимания. Опыта мало.
Есть 2 базы УПП. В источнике заполняется Р.С. Работники организаций, данные этого регистра необходимо выгрузить, и создать движения по уже существующим документам в базе приемнике, но только с Р..С. Работники. В документах прием, увольнение, кадровое перемещение организаций добавлена возможность проведения по Р.С. Работники
Обработка с ком соединением есть, ее необходимо доработать. В первой процедуре (ЗагрузитьВсеНажатие) создаю набор записей со всеми регистраторами из Р.С. Работники организаций. Во вторую процедуру (СравнитьИсточникПриемникТЗ) Необходимо прописать соответсвие некоторых реквизитов, которые отличаются в этих двух регистрах. Это Подразделения и Должности (в Работниках организаций используются справочники с окончанием "Организаций", а в Р.С. Работники, соответственно без данных окончаний). Данные в этих справочниках одинаковы по коду и наименованию. ВОПРОС: Как можно задать соответствия для этих двух реквизитов? И добавить в базу уже в другой регистр движения. (Вопрос объемный, за любую помощь заранее спасибо ))))


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

Процедура  СравнитьИсточникПриемникТЗ()  //Набор,Регистратор
   
    Регистратор = ТаблицаРегистраторовКОМ[ИндексТаблицаРегистраторовКОМ].Ссылка;       
   
    Набор = Регистратор.Получитьобъект().Движения.РаботникиОрганизаций;
    Набор.Прочитать();
               
    ТаблицаНаборовКОМ=ЗначениеИЗСтрокиВнутр(Соединение.ЗначениеВСтрокуВнутр(Набор.Выгрузить()));
   
    // набор движений в базе приемнике //работает
    Запрос = Новый Запрос;
    Запрос.Текст =
   
// текст запроса

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


Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
А покажите-ка структуру этих обоих регистров скринами.

Оффлайн 19yellow92

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-17
  • Сайт: 
А покажите-ка структуру этих обоих регистров скринами.

Периодичность у обоих в пределах дня, и оба подчинены регистратору.


Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Так я и думал, но на всякий случай все-таки решил уточнить...
А теперь попробуйте еще раз русским языком объяснить что вы хотите, потому что:
1. РС "работники" - это регистр управленческого учета, рс "РаботникиОрганизаций" - это РС бух. учета.
2. Как вы сами видите единственное поле, которое совпадает в этих 2-ух регистрах - это "должность", все остальное отличается как по наименованиям полей, так и по типам.
3. Эти 2 РС в принципе нельзя сравнивать, потому что они живут независимо.

Оффлайн 19yellow92

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-17
  • Сайт: 
Так я и думал, но на всякий случай все-таки решил уточнить...
А теперь попробуйте еще раз русским языком объяснить что вы хотите, потому что:
1. РС "работники" - это регистр управленческого учета, рс "РаботникиОрганизаций" - это РС бух. учета.
2. Как вы сами видите единственное поле, которое совпадает в этих 2-ух регистрах - это "должность", все остальное отличается как по наименованиям полей, так и по типам.
3. Эти 2 РС в принципе нельзя сравнивать, потому что они живут независимо.
Даже поле Должность нельзя сравнить.  Потому что в одном используется справочник Должности организаций, а в другом просто должности.
Почему нель сравнить? В измерении сотрудник - есть Физлицо, потом занимаемаемых ставок,график работы,удалитьтабельныйномер, причинаизменениясостояния одинаковые реквизиты. Разные подразделения и должности, но я думаю, что их как-то можно соотнести, по коду и наименованию (эти данные одинаковые), только я не знаю как )))
А про то, что эти регистры ведутся в разных учета,  я знаю.

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Почему нель сравнить?
Потому что нельзя сравнивать соленое с мягким.
В измерении сотрудник - есть Физлицо
Ииииииииии? по бух. учету может быть много сотрудников на одном физ лице.
потом занимаемаемых ставок,график работы,удалитьтабельныйномер, причинаизменениясостояния одинаковые реквизиты. Разные подразделения и должности, но я думаю, что их как-то можно соотнести, по коду и наименованию (эти данные одинаковые), только я не знаю как )))
Еще раз акцентирую внимание: бух учет и упр учет в общем случае - независимы и данные в них могут очень сильно отличаться. Если данные в бух. учете и упр. учете "условно" одинаковы - то это говорит только о том, что пользователь сам целенаправлено ручками формирует такую структуру данных. А полагаться на пользователей в любых вопросах - нельзя.
Идем далее. Насколько я понимаю, речь идет о двух разных базах, соответственно сопоставление может выполняться только по простым типам (строка, дата и т.д.). О том соответствуют ли, например хотя бы коды в разных справочниках(сотрудники - физ. лица) - это вам лучше знать.
В общем случае я бы сказал, что такая работа бесперспективная - очень много траха с сопоставлением данных, а на выходе получите очень маленький результат.

Оффлайн 19yellow92

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-17
  • Сайт: 
Почему нель сравнить?
Потому что нельзя сравнивать соленое с мягким.
В измерении сотрудник - есть Физлицо
Ииииииииии? по бух. учету может быть много сотрудников на одном физ лице.
потом занимаемаемых ставок,график работы,удалитьтабельныйномер, причинаизменениясостояния одинаковые реквизиты. Разные подразделения и должности, но я думаю, что их как-то можно соотнести, по коду и наименованию (эти данные одинаковые), только я не знаю как )))
Еще раз акцентирую внимание: бух учет и упр учет в общем случае - независимы и данные в них могут очень сильно отличаться. Если данные в бух. учете и упр. учете "условно" одинаковы - то это говорит только о том, что пользователь сам целенаправлено ручками формирует такую структуру данных. А полагаться на пользователей в любых вопросах - нельзя.
Идем далее. Насколько я понимаю, речь идет о двух разных базах, соответственно сопоставление может выполняться только по простым типам (строка, дата и т.д.). О том соответствуют ли, например хотя бы коды в разных справочниках(сотрудники - физ. лица) - это вам лучше знать.
В общем случае я бы сказал, что такая работа бесперспективная - очень много траха с сопоставлением данных, а на выходе получите очень маленький результат.
Коды и наименования одинаковые в справочнике. В справочник Должности данные автоматически добавляются при создании нового элемента в справочнике Должности организации. И подразделения так же.
Задача все-такт стоит именно в этом. Как можно сделать все-таки? Как сопоставить

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Ок, верю вам на слово.
В чем именно сложность в сопоставлении? Что именно не получается?

Оффлайн 19yellow92

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-17
  • Сайт: 
Ок, верю вам на слово.
В чем именно сложность в сопоставлении? Что именно не получается?
Сложность в самой данной задаче, я представляю это теоретически. И то, возможно не правильно, а как вывести практически, не знаю.как вообще можно это сделать ) хоть примерно...

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Оба регистра периодические, вопрос стоит в том чтобы получить аналогичные движения за весь период базы или сопоставить регистры по срезу последних на какую-то дату?


Теги:
 

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

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

Ответов: 2
Просмотров: 740
Последний ответ 27 Апр 2016, 11:38
от cska-fanat-kz
Медленная работа регистров бухгалтерии в клиент-сереверном варианте 1С 8.2

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

Ответов: 0
Просмотров: 1728
Последний ответ 25 Янв 2011, 13:06
от sektet
8.3 RLS. Как настроить, если права берутся из двух регистров сведений

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

Ответов: 1
Просмотров: 893
Последний ответ 24 Дек 2015, 12:59
от vitasw
Вывод в запрос данных из двух регистров накопления

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

Ответов: 4
Просмотров: 3006
Последний ответ 12 Ноя 2013, 15:23
от sdilshod
Срез последних для документов, регистров накопления, справочников

Автор MuI_I_IkaРаздел Алгоритмы

Ответов: 0
Просмотров: 5764
Последний ответ 09 Янв 2014, 09:57
от MuI_I_Ika

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

* Топ 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