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

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

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
Просмотров: 629
Последний ответ 27 Апр 2016, 11:38
от cska-fanat-kz
Медленная работа регистров бухгалтерии в клиент-сереверном варианте 1С 8.2

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
96 Сообщений
Dethmontt Dethmontt
69 Сообщений
alex0402
58 Сообщений
MuI_I_Ika MuI_I_Ika
55 Сообщений
wise wise
47 Сообщений
Сергей Федоров Сергей Федоров
41 Сообщений
ilyay ilyay
39 Сообщений
BuhRust
22 Сообщений
videomause
20 Сообщений
ilnur75
20 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal