|
Алгоритм | ☑ | ||
---|---|---|---|---|
0
Azxcvbn
14.03.13
✎
09:04
|
Имеется справочник Контрагенты из УТП и Контрагенты БП, нужно их сравнить по наименованию и коду, причем если Наименование одинаковые, но коды разные, нужно записать в массив(переменную) две выборки. Так же возможно есть дубли, то есть к примеру в обоих справочниках есть контрагент "Иванов И" с кодом 123 и "Иванов И" с кодом 124.
Я реализовал так: Пока Выборка.Следующий() Цикл Совпадение = Ложь; Пока ВыборкаБух.Следующий() ЦИкл Если Выборка.Наименование = ВыборкаБух.Наименование Тогда Если ВыборкаБух.Код <> Выборка.Код Тогда КонтрагентКодБУх = ВыборкаБух.Код; КонтрагентНаимБух = ВыборкаБух.Наименование; КонтрагентКодТор = Выборка.Код; КонтрагентНаимТор = Выборка.Наименование; Иначе Совпадение = Истина; КонецЕсли; КонецЕсли; Если Совпадение = Истина тогда Прервать; КонецЕсли; КонецЦИкла; //Здесь думаю над тем как задать правильно условие и записать "правильные" переменные в массив или ТЗ КонецЦикла; З.Ы. Работает не правильно =)) В основном проблема начинается при сравнении "дублированных" Контрагентов. И да удалить дублированных контрагентов не вариант, так как они уже в Документах есть. |
|||
1
zak555
14.03.13
✎
09:04
|
изначально сравнивай по ИНН/КПП
|
|||
2
Рэйв
14.03.13
✎
09:07
|
один запрос на
... ГДЕ Спр1.Наименование=Спр2.Наименование И Спр1.Код = Спр2.Код второй запрос на ... ГДЕ Спр1.Наименование=Спр2.Наименование ИЛИ Спр1.Код = Спр2.Код |
|||
3
Рэйв
14.03.13
✎
09:08
|
или внутренее соедениенеи по тем же условиям
|
|||
4
Azxcvbn
14.03.13
✎
09:10
|
(2)
Ком = Новый COMObject("V81.COMConnector"); // создается объект COM-соединение Попытка connection = Ком.Connect("Srvr=""192.168.1.1"";Ref=""BASEPC"";"+ "Usr=""Админ"";Pwd=123"); Исключение Сообщить(ОписаниеОшибки()); Возврат КонецПопытки; Запрос = connection.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ УТ 8.1 БП 8.2 Обмен данных |
|||
5
Azxcvbn
14.03.13
✎
09:11
|
(1) Одинаковые и там и там
|
|||
6
Рэйв
14.03.13
✎
09:12
|
(5)Как вариант получи по СОМ тз с кодами и наименованиями
Закинь ее в ВТ в запрос и соединяй |
|||
7
cw014
14.03.13
✎
09:13
|
(6) опередил
|
|||
8
Azxcvbn
14.03.13
✎
09:15
|
(6)
я пробовал, уровень моих знаний не позволяет мне это сделать. Был бы рад если бы вы показали как это реализовать. |
|||
9
Рэйв
14.03.13
✎
09:20
|
(6)Создай в текущей базе ТЗ с типизитованными колонками "Код" и "Наименование"
получи запросом по СОМ справочник, перебери выборку, заполни тз кодами и наименованиями. Потом //---- Запрос=Новый Запрос; Запрос.Текст="Выбрать т.Наименование,т.Код Поместить ВТ ИЗ &т КАК т ; Выбрать * ИЗ ВТ Внутреннее Соединение Справочник.Контрагенты КАК Контр ПО ВТ.Код=Контр.Код И ВТ.Наименование=Контр.Наименование //---- примерно так |
|||
10
Рэйв
14.03.13
✎
09:21
|
ах да..Еще
Запрос.УстановитьПараметр("т",ТвояТЗ); |
|||
11
Azxcvbn
14.03.13
✎
10:13
|
(10) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |