Имеется базы УТ 10.3 (сильно переписанная) и БП 3.0 (типовая, на замке). Периодически (раз в месяц) нужно перекачивать документы "Реализация ..." из УТ в БП. В базе УТ появляются новые Контрагенты и Договора контрагентов. Изначально поиск контрагентов в БП 3.0 производился по ИНН и КПП, а договоров - по номеру и дате договора. Но оказалось, что КПП контрагента и номер и дата договора могу вдруг (!) измениться. Встал вопрос идентифицировать контрагентов и договора по внутреннему идентификатору, в качестве которого использовался бы, например, их ГУИД. Возник вопрос как в базе БП 3.0 запомнить ГУИД, переданный из УТ? У меня был варианты завести дополнительные реквизиты и писать их туда, но мне сказали, что можно сделать проще, а как не говорят (партизаны). Может кто-то здесь мне что-то подскажет?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
1.А если это физик без ИНН?
2.А если это ИП - у них нет КПП
3.Наименование организации может измениться :) Так же как и КПП
4.Контактные данные могут измениться
и так далее далее далее
И если контрагентов и договора с ним создают как кому хочется то .. тут к телепатам , а не к партизанам
Изначально поиск контрагентов в БП 3.0 производился по ИНН и КПП, а договоров - по номеру и дате договора.
1.А если это физик без ИНН?
2.А если это ИП - у них нет КПП
3.Наименование организации может измениться :) Так же как и КПП
4.Контактные данные могут измениться
и так далее далее далее
И если контрагентов и договора с ним создают как кому хочется то .. тут к телепатам , а не к партизанам
(4) Что бы оно стало соответствием :) Его дня начала нужно определить :)
Пример :
в УТ10 Создали контрагента Иванов Иван Иванович ИНН нет КПП нет создали Договор №12 от 01.01.2025 и сделали РТУ
обмена нету
в БП3 бух приходует денежные средства и создает контрагента Иванов Иван ИНН нет КПП нет , по договору 12 от 1 января 2025 года
Формально это один и тот же контрагент
Грузим РТУ в БП :) - ну и как их сопоставит Автоматом? :) Никак :)
P/S Итога: - Хаос автоматизировать нельзя.
Пример :
в УТ10 Создали контрагента Иванов Иван Иванович ИНН нет КПП нет создали Договор №12 от 01.01.2025 и сделали РТУ
обмена нету
в БП3 бух приходует денежные средства и создает контрагента Иванов Иван ИНН нет КПП нет , по договору 12 от 1 января 2025 года
Формально это один и тот же контрагент
Грузим РТУ в БП :) - ну и как их сопоставит Автоматом? :) Никак :)
P/S Итога: - Хаос автоматизировать нельзя.
(5) Вы все усложняете. У сотрудников, которые ведет учет в УТ тоже обязанности есть. Они должны следить за те, чтобы вовремя передать вводимую и справленную информацию в БП. В данном случае если создали нового контрагента, то специальной обработкой данные должны передаться в БП перед загрузкой денежных документов.
(6)
А "внезапно меняются" не у меня, а в базе, которую я получил. И что еще будет "внезапно меняться" я не знаю - время покажет:)
я в сходном случае делал допреквизит - код из УТ. Но можно и Гуид. Вдруг у вас и коды "внезапно меняются"
В БП 3.0 есть возможность создавать допреквизиты. Я этим и пользуюсь.
А "внезапно меняются" не у меня, а в базе, которую я получил. И что еще будет "внезапно меняться" я не знаю - время покажет:)
Из в всех комментариев делаю предварительный вывод, что для того, чтобы связать элементы справочников в базах, нужно в приемнике создать место, где сохранять некий реквизит источника, по которому идентифицировать элементы.
(12) в типовых так и делается только не через ж... с доп реквизитом. А как написали в (4). Т.к. доп реквизит сам по себе не нужен.А этот регистр и содержит все нужные данные. Но не умение использовать типовой функционал порождает бурную фантазию, если костыли в моде и работают зачем что-то еще делать. Так что решать вам!
(25)
в типовых так и делается только не через ж... с доп реквизитом. А как написали в (4).
А чем в данном случае отличается использование "Дополнительных реквизитов" от "РегистрСведений.СоответствияОбъектовИнформационныхБаз". Они оба - типовой функционал. Вероятно, вы думали, что я что-то дописывал в конфигурацию? Так нет. В конфигурацию УТ я вообще не лезу, а БУ на замке и даже не используются расширения. К тому же "Дополнительные реквизиты" нагляднее.
Прикрепленные файлы:

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