| 
    
            
         
         | 
    
  | 
Как сравнить две ТЗ | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Hayce    
     04.08.17 
            ✎
    15:40 
 | 
         
        Добрый день!
 
        Есть 2 базы, к обоим подключаюсь через СОМ, получаю некие данные, в моем случае это ссылка на номенклатуру, загоняю их в ТЗ и хочу сравнить. Делаю запрос к обоим ТЗ и получаю ошибку о том, что неверный параметр. Можно как то схлопнуть эти ТЗ?  | 
|||
| 
    1
    
        Asmody    
     04.08.17 
            ✎
    15:42 
 | 
         
        (0) И как ты собрался ссылку из одной базы сравнить с ссылкой из другой базы?     
         | 
|||
| 
    2
    
        МихаилМ    
     04.08.17 
            ✎
    15:44 
 | 
||||
| 
    3
    
        Wirtuozzz    
     04.08.17 
            ✎
    15:46 
 | 
         
        (0) главный вопрос, как сформулирована задача? Что нужно сделать?     
         | 
|||
| 
    4
    
        Hayce    
     04.08.17 
            ✎
    15:49 
 | 
         
        (3) Задача проста, объединить эти ТЗ и получить в результатте те номенклатурные позиции, которые имеют одинаковые ссылки.     
         | 
|||
| 
    5
    
        php5    
     04.08.17 
            ✎
    15:53 
 | 
         
        (4) А обязательно сравнивать по ссылке или все-таки условие найти дубли?     
         | 
|||
| 
    6
    
        Wirtuozzz    
     04.08.17 
            ✎
    15:55 
 | 
         
        (4) ты можешь обратиться к одной таблице, отдельно ко второй таблице, привести текстовые поля в соответствия через выразить, и потом сделать внутреннее соединение связавшись по ссылке, полученная таблица - таблица дублей     
         | 
|||
| 
    7
    
        Hayce    
     04.08.17 
            ✎
    15:55 
 | 
         
        (5) Есть 3 базы и номенклатура из 2 переезжает в третью, надо схлопнуть ее из первых двух.     
         | 
|||
| 
    8
    
        php5    
     04.08.17 
            ✎
    15:56 
 | 
         
        (7) Сравнвний по простым типам (коды, артикулы или совакупность этих полей).     
         | 
|||
| 
    9
    
        Wirtuozzz    
     04.08.17 
            ✎
    15:56 
 | 
         
        (7) причем тут 3 базы, если участвуют только 2 базы, зачем нам нужна третья? что бы первая и вторая не подрались?     
         | 
|||
| 
    10
    
        Wirtuozzz    
     04.08.17 
            ✎
    15:57 
 | 
         
        или ты из первой базы рулишь переносом данных из базы 2 в базу 3 ?     
         | 
|||
| 
    11
    
        Hayce    
     04.08.17 
            ✎
    15:58 
 | 
         
        (9) было бы 2 базы, тогда бы и вопроса не было. А так надо объединить эти 2 таблицы и загнать в новую третью бызу     
         | 
|||
| 
    12
    
        Hayce    
     04.08.17 
            ✎
    15:59 
 | 
         
        (10) точно     
         | 
|||
| 
    13
    
        Веселый собака    
     04.08.17 
            ✎
    15:59 
 | 
         
        (0) Если из 2-х баз, то по идее надо все составляющие номенклатуру реквизиты через метаданные сравнивать.. Если получится, конечно.     
         | 
|||
| 
    14
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:01 
 | 
         
        (12) Базы источники 1С?     
         | 
|||
| 
    15
    
        PiterPrg    
     04.08.17 
            ✎
    16:02 
 | 
         
        Так ты сравнивай не ссылки, а Ссылка.УникальныйИдентификатор()     
         | 
|||
| 
    16
    
        Hayce    
     04.08.17 
            ✎
    16:02 
 | 
         
        (14) да     
         | 
|||
| 
    17
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:03 
 | 
         
        (16) А в чем сложность сделать правила КД2.0 и перенести нормально данные? Без этого маразма, который за гранью добра и зла?     
         | 
|||
| 
    18
    
        Hayce    
     04.08.17 
            ✎
    16:03 
 | 
         
        (15) Хорошо, но вопрос не как это сделать в теории, а как на практике... Не могу придумать как это сделать в запросе к двум ТЗ и не получить ошибку     
         | 
|||
| 
    19
    
        Hayce    
     04.08.17 
            ✎
    16:04 
 | 
         
        (17) незнаю :)     
         | 
|||
| 
    20
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:05 
 | 
         
        (18) нужно написать правильный запрос.     
         | 
|||
| 
    21
    
        PiterPrg    
     04.08.17 
            ✎
    16:06 
 | 
         
        (18) При чем здесь теория?
 
        Я именно о практике. В той таблице, которую ты (за каким-то) собрался сравнивать в запросе. Вместо ссылки делаешь поле Строка(36) И когда ее будешь заполнять заполняй не значением Ссылка, а Ссылка.УникальныйИдентификатор()  | 
|||
| 
    22
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:06 
 | 
         
        (19) Но я вижу, что чувачек любит извращения с КОМ, с запросами, и не совсем понимает что такое ссылка. Ты из базы источника нафиг ссылку вытащил? тебе нужен УникальныйИдентификатор в виде строки, и по нему искать в базе примнике, причем сначала в цикле заполнять ТЗ, а потом уже ТЗ пихать в запрос.     
         | 
|||
| 
    23
    
        Веселый собака    
     04.08.17 
            ✎
    16:11 
 | 
         
        (22) А зуб даешь, что в разных, давно не синхронизированных базах по одному UID не будет разное. Или разный uid у одной и той же номенклатуры?     
         | 
|||
| 
    24
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:11 
 | 
         
        (19) УникальныйИдентификатор() - читай СП, иначе прийдется тебя учить запросам, учить манерам, учить искать правильный метод. Ты ж наверное негодяй не в транзакции в базу пишешь данные, эх насоздаешь ты там дел.     
         | 
|||
| 
    25
    
        _Дайвер_    
     04.08.17 
            ✎
    16:11 
 | 
         
        Недавно делал перенос, щас код скину     
         | 
|||
| 
    26
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:12 
 | 
         
        (23) Вероятность этого минимальна, в любом случае я против переноса через КОМ, я автору еще (17) написал - ЮЗАЙ ПРАВИЛА не парь мозг ни себе, ни нам.     
         | 
|||
| 
    27
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:16 
 | 
         
        (23) и для меня как для программиста, если в ТЗ написано, что уникальность номенклатуры обусловлена уникальностью ГУИД, то значит если по гуид нашлось, значит это одно и то же. А если больше ничего не сказано - значит этого нет. Автор в (0) писал о ссылке, я его понял что он будет искать по ГУИД.     
         | 
|||
| 
    28
    
        _Дайвер_    
     04.08.17 
            ✎
    16:17 
 | 
         
        1. Блин, я делал это для контрагентов, до номенклатуры еще не дошел...Но вот пример. В обработке добавил ТЧ, ее заполняю необходимыми данными, и после этого в процедуре переноса данных вызываю функцию НайтиСоответствиЯБЛАБЛАБЛА
 
        OLEЗапрос = Соединение.NewObject("Запрос"); OLEЗапрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.ИНН = &ИНН | И Контрагенты.КПП = &КПП"; OLEЗапрос.УстановитьПараметр("ИНН", ИНН); OLEЗапрос.УстановитьПараметр("КПП", КПП); Выборка = OLEЗапрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Истина; Иначе Возврат Ложь; КонецЕсли; Это на примере контрагентов сделаешь себе на номенклатуру, поиск делай такой который считаешь нужным  | 
|||
| 
    29
    
        _Дайвер_    
     04.08.17 
            ✎
    16:20 
 | 
         
        (28) + , потом в цикле, проходи ТЧ, если есть соответствие, тогда Продолжить Иначе НоваяНоменклатура = Соединение.Справочники.СоздатьЭлемент(); заполняешь его, Записать();     
         | 
|||
| 
    30
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:21 
 | 
         
        (29) еще один герой без транзакций пишет в базу     
         | 
|||
| 
    31
    
        _Дайвер_    
     04.08.17 
            ✎
    16:23 
 | 
         
        (29) :) Я это сделал, потому-что пользователям впадло переносить ручками пару контрагентов, а правила для 2 контрегентов писать не охота. И переносят раз в месяц     
         | 
|||
| 
    32
    
        Hayce    
     04.08.17 
            ✎
    16:23 
 | 
         
        ну это все хорошо, только это геморойно, я думал можно как то попроще парочкой несложных запрсов     
         | 
|||
| 
    33
    
        _Дайвер_    
     04.08.17 
            ✎
    16:24 
 | 
         
        (30) Какие транзакции? Я контрагента создаю, и записываю его, все.     
         | 
|||
| 
    34
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:24 
 | 
         
        (32) можно правилами. Проще не придумаешь.     
         | 
|||
| 
    35
    
        _Дайвер_    
     04.08.17 
            ✎
    16:25 
 | 
         
        (32) Дело говорит(34)     
         | 
|||
| 
    36
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:25 
 | 
         
        (33) Посмотри обработку Универсальный обмен в формате ХМЛ, и посмотри там галочка есть "Выполнять в транзакции", подумай для чего она     
         | 
|||
| 
    37
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:26 
 | 
         
        (33) Если ты для одного контрганета придумал такой алгоритм, вместо того что бы установить ссылку нового элемента, то это ППЦ     
         | 
|||
| 
    38
    
        _Дайвер_    
     04.08.17 
            ✎
    16:29 
 | 
         
        (37) Ссылку передавать будешь с одной базы в другую? причем, которые не синхронизируются, да еще и конфигурации разные...     
         | 
|||
| 
    39
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:34 
 | 
         
        (38) Правила напишу. И выгружу что мне надо, сколько мне надо и куда мне надо. Между базами 1С данные любые данные выгружаются на раз.     
         | 
|||
| 
    40
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:34 
 | 
         
        я ТС раскусил еще в (3) я сразу понял, что он не понимает что ему нужно. И тема ветки не имеет ничего общего с тем, что ему нужно сделать.     
         | 
|||
| 
    41
    
        X Leshiy    
     04.08.17 
            ✎
    16:35 
 | 
         
        (0) Нормальные люди "схлопывают" правилами и выгрузкой.     
         | 
|||
| 
    42
    
        _Дайвер_    
     04.08.17 
            ✎
    16:36 
 | 
         
        (39) Согласен, в случае с СП, ему надо КД 2.0 использовать, в моем случае, я сделал обработину, и меня не станут дергать чтобы я переносил 2 контрагента и 3 номенклатуры в неделю постоянно. Так они выбрали что нужно и сами все сделали     
         | 
|||
| 
    43
    
        Hayce    
     04.08.17 
            ✎
    16:37 
 | 
         
        Есть 2 базы, одна основная, другая нет, номенклатура у них разная, часть номенклатуры совпадает по уникальномуидентификатору, часть ищу через ж0hу, другая часть вообще не совпадает и не должна. Надо перенести только те номенклатурные позиции по которым есть остатки, как в первой так и во второй базе, при этом если номенклатура из неосновной базы есть в основной то УИД должен быть перенесен из основной. И если есть остаток в неосновной тогда номенклатура также должна переехать, но уже наплевать по какому УИД. И все это переезжает в третью базу, чистую.
 
        Как такое осуществить с помощью КД2,0?  | 
|||
| 
    44
    
        _Дайвер_    
     04.08.17 
            ✎
    16:37 
 | 
         
        (42) ТС*     
         | 
|||
| 
    45
    
        _Дайвер_    
     04.08.17 
            ✎
    16:38 
 | 
         
        (43) Там тебе в помощь Справка!!! Все по полочкам написано     
         | 
|||
| 
    46
    
        X Leshiy    
     04.08.17 
            ✎
    16:39 
 | 
         
        (43) Ты не поверишь, но в КД можно запросы писать.
 
        И выгружать твою номенклатуру по твоим правилам. И что ты пристал у УИД? На кой хен он тебе?  | 
|||
| 
    47
    
        _Дайвер_    
     04.08.17 
            ✎
    16:39 
 | 
         
        (43) Вот, гугл нашел(хорошая вещь)
 
        https://its.1c.ru/db/metod8dev/content/2943/hdoc  | 
|||
| 
    48
    
        _Дайвер_    
     04.08.17 
            ✎
    16:41 
 | 
         
        А вообще иди отдыхай, с понедельника начнешь читать что такео КД 2.0 и после обеда начнешь писать правила...     
         | 
|||
| 
    49
    
        X Leshiy    
     04.08.17 
            ✎
    16:42 
 | 
         
        Грубо говоря, пишешь правило конвертации номенклатуры, указываешь поля поиска (какие надо).
 
        Пишешь обработчик который выгрузит твою номенклатуру (у которой остатки) по правилам. Выгружаешь из базы 1 и 2, загружаешь в базу 3.  | 
|||
| 
    50
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:42 
 | 
         
        (42) А я бы сделал правила и инструкцию, и меня бы вообще не дергали, никогда. Пользователь сам бы решил свои проблемы.     
         | 
|||
| 
    51
    
        Hayce    
     04.08.17 
            ✎
    16:43 
 | 
         
        (47) Гугл,молодец конечно.
 
        То есть КД может не только запросы писать, но и загружать данные из 2 источников в один приемник, я правильно понял?  | 
|||
| 
    52
    
        X Leshiy    
     04.08.17 
            ✎
    16:43 
 | 
         
        (49) И вся твоя номеклатура схлопнется по полям поиска.
 
        Отстань уже от УИД и тем более престань пытаться получить ссылку по COM.  | 
|||
| 
    53
    
        X Leshiy    
     04.08.17 
            ✎
    16:43 
 | 
         
        (51) Хоть в 200.     
         | 
|||
| 
    54
    
        _Дайвер_    
     04.08.17 
            ✎
    16:43 
 | 
         
        (50) Научи их еще КД 2.0 пользоваться, вообще идеально!     
         | 
|||
| 
    55
    
        Hayce    
     04.08.17 
            ✎
    16:44 
 | 
         
        (49) если я так выгружу он мне задвоит половину     
         | 
|||
| 
    56
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:45 
 | 
         
        (43) бред, если товар есть в источнике, то она просто обязана появиться в приемнике, иначе вы данные ни одним отчетом не сведете.     
         | 
|||
| 
    57
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:46 
 | 
         
        (51) нет, КД не пишет запросы. Это ж конфигурация, а не ИИ     
         | 
|||
| 
    58
    
        _Дайвер_    
     04.08.17 
            ✎
    16:47 
 | 
         
        (55) Внимательно почитай справку, проставь условия, и переноси.     
         | 
|||
| 
    59
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:47 
 | 
         
        (54) научил, вот все бухи, с кем работаю все умеют, гл бухи даже понимают отборы.     
         | 
|||
| 
    60
    
        X Leshiy    
     04.08.17 
            ✎
    16:47 
 | 
         
        (55) Ну если через ж**у поля поиска укажешь то да, задвоит и половину и три четверти и все.     
         | 
|||
| 
    61
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:47 
 | 
         
        (55) Настрой поля.ТС, ты нам признайся, ты хоть раз правила писал?     
         | 
|||
| 
    62
    
        Hayce    
     04.08.17 
            ✎
    16:49 
 | 
         
        (56) Источника два! появиться то она появится, но тока и поиск между ними проходит через родителя! родителя указывать в качестве условия... такое выгрузится что лучше не начинать     
         | 
|||
| 
    63
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:49 
 | 
         
        (54) Самих бухам правила писать не нужно, они просто ПИШУТ, как должны быть перегружены документы, обрати внимание: ПИШУТ, я делаю им правила, и они САМИ выгружают, и лишь иногда приходится допиливать правила, т.к. меняются реквизиты в конфигурациях     
         | 
|||
| 
    64
    
        Hayce    
     04.08.17 
            ✎
    16:49 
 | 
         
        (61) правил я не писал, я и не скрываю этого     
         | 
|||
| 
    65
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:49 
 | 
         
        (62) Зачем тебе проводить выгрузку через родителя?     
         | 
|||
| 
    66
    
        X Leshiy    
     04.08.17 
            ✎
    16:50 
 | 
         
        (43) Напомню, если ты забыл, серез COM можно передать только примитивные типы.     
         | 
|||
| 
    67
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:50 
 | 
         
        (64) С первого раза ты не напишешь, что нужно, хотя... попробуй, у тебя впереди выходные...     
         | 
|||
| 
    68
    
        Hayce    
     04.08.17 
            ✎
    16:51 
 | 
         
        (65) ну вот сейчас так... хочу в новой программе сделать по человечески     
         | 
|||
| 
    69
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:51 
 | 
         
        (66) да он просто что такое тип не понимает, а вы ему про примитивные.     
         | 
|||
| 
    70
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:52 
 | 
         
        (68) А кто тебе сказал что это правильно? 
 
        Прежде чем делать выгрузку, ты должен понять как ты результат проверишь? ты вручную будешь крыжить базы?  | 
|||
| 
    71
    
        Hayce    
     04.08.17 
            ✎
    16:53 
 | 
         
        (69) кхм...     
         | 
|||
| 
    72
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:56 
 | 
         
        (71) Я о том же. 
 
        продолжу, так как ты хочешь, я бы переносить не стал. Т.к. проверять все прийдется вручную. Я бы перенес остатки, сначала остатки из первой базы во вторую, на новый чистый склад. Проверил отчетами остатки, потом менеджеры либо корректировками, либо пусть удаляют что им не нужно. Потом я бы опять все перенес в третью базу. И опять менеджеры бы корректировали что им не нужно. Потому что те горы гомна создавшиеся годами ты переносом не разрулишь. Перенос данных <> исправление ошибок учета! Запомни это и Гл. буху объясни или кто там от тебя это требует  | 
|||
| 
    73
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:59 
 | 
         
        ТС, ты как правильность проверять своей работы собрался, поведай нам. Мы все в волнении.     
         | 
|||
| 
    74
    
        Wirtuozzz    
     04.08.17 
            ✎
    16:59 
 | 
         
        ???     
         | 
|||
| 
    75
    
        Hayce    
     04.08.17 
            ✎
    17:02 
 | 
         
        Та чо проверять то?? я хотел все загнать в одну таблицу и из нее уже переносить в новую. а проверять, ну хз, отчетом остатки на складах     
         | 
|||
| 
    76
    
        Wirtuozzz    
     04.08.17 
            ✎
    17:05 
 | 
         
        (75) И что тебе отчет покажет? в базе 1 он тебе покажет одно, в базе 2 покажет другое. Я тебе скажу, где правильно? Суммы итого в отчете не бьются. Надо крыжить руками?     
         | 
|||
| 
    77
    
        X Leshiy    
     04.08.17 
            ✎
    17:05 
 | 
         
        (75) По СОМ из двух баз в третью ты получишь только строки, числа, даты, смирись :)     
         | 
|||
| 
    78
    
        Wirtuozzz    
     04.08.17 
            ✎
    17:06 
 | 
         
        (77) в принципе этого достаточно ТС, только он не понимает как этим всем пользоваться.     
         | 
|||
| 
    79
    
        Wirtuozzz    
     04.08.17 
            ✎
    17:07 
 | 
         
        Лан, буду ждать, вопросов почему не заполняется количество при переносе. ответ : смотри типы, строку в число хочешь засунуть.     
         | 
|||
| 
    80
    
        X Leshiy    
     04.08.17 
            ✎
    17:07 
 | 
         
        (78) Ну, я не сказал "перестань" :)     
         | 
|||
| 
    81
    
        Wirtuozzz    
     04.08.17 
            ✎
    17:09 
 | 
         
        (80) ;) я дал просто морально поддержал парня, что бы не отчаивался. А то мы ему мозги знатно вскипятили в пятницу )))     
         | 
|||
| 
    82
    
        Hayce    
     04.08.17 
            ✎
    17:20 
 | 
         
        (77) спасибо , смирился
 
        (78) наверно так и есть, вот сделаю все и пойму (79) ну с типами то я как нить разберусь  | 
|||
| 
    83
    
        Hayce    
     04.08.17 
            ✎
    17:22 
 | 
         
        (76) все он верно покажет! У меня проблема есть, не могу четко объяснить что требуется.
 
        Но все равно всем спасибо, сделал определенные выводы. Удачных выходных  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |