|   |   | 
| 
 | v7: API проверки контрагентов | ☑ | ||
|---|---|---|---|---|
| 0
    
        ЯнСмит 28.09.23✎ 14:57 | 
        такой вопрос - кто-нибудь прикручивал subj к 1с 7.7 в первую очереди интересен контроль корректности ИНН, КПП и юр.адреса, оценки всяких там рисков вообще не нужны ...     | |||
| 1
    
        ЯнСмит 28.09.23✎ 15:11 | 
        Все - отбой, что-то ступил, на инфостарте такого как ... за баней     | |||
| 2
    
        ЯнСмит 29.09.23✎ 19:21 | 
        Так, похоже поспешил я ... нашел на инфостарте вот эту ветку
 https://infostart.ru/1c/articles/577575/ по идее, то что надо, подставляешь ИНН - получаешь КПП, юр.адрес и пр., но проблема в, том что ни фига не работает, пробовал по-всякому, подписка 1С:Проф есть, заметил, что в статье устаревший адрес сервиса, нашел новый - с тем же результатом. P.S. Злоп - ты вроде там плотно отметился, пни в нужном направлении если не сложно ) | |||
| 3
    
        Харлампий Дымба 29.09.23✎ 21:59 | 
        Обработка по заполнению данных контрагентов по 1С:Контрагент  из моей рабочей базы
 https://disk.yandex.ru/d/PcYen_AZGPreSA Подкрутишь себе, как надо. Для работы нужен будет логин и пароль ИТС | |||
| 4
    
        ЯнСмит 30.09.23✎ 11:17 | 
        (3) премного благодарен     | |||
| 5
    
        MWWRuza 30.09.23✎ 19:47 | 
        Вот не пойму - чего такого есть в "1С:Контрагент" по подписке ИТС, чего нет в практически бесплатном(бесплатно до 300 запросов в день) сервисе "DaData" - ???
 Обработок для работы с ним есть несколько на ИнфоСтарте, в том числе и для 7.7... | |||
| 6
    
        MWWRuza 30.09.23✎ 19:46 | 
        Вот в моей конфе, на основе одной из разработок с инфостарта:     
 | |||
| 7
    
        MWWRuza 30.09.23✎ 19:53 | 
        Ааа, даже соврал - не 300 запросов в день бесплатно, а вообще 10000 :-)
 https://dadata.ru/pricing/ Чего-то мне 300 запало, возможно раньше так было, а теперь добавили. | |||
| 8
    
        CepeLLlka 30.09.23✎ 19:54 | 
        (5)Почему вы считаете что до 300? В личном кабинете написано что бесплатно 10 000 запросов в день.     | |||
| 9
    
        CepeLLlka 30.09.23✎ 19:55 | 
        Я тоже себе сделал такое для БП 3.0, УТ 11.х КА 2.5     | |||
| 10
    
        Харлампий Дымба 30.09.23✎ 21:05 | 
        (5) Ладно, переделаю когда-нибудь)     | |||
| 11
    
        ЯнСмит 30.09.23✎ 21:27 | 
        (6) уже неоднократно встречался с мнением, что dadata.ru предоставляют не самые свежие данные ... хотя может это и в прошлом уже     | |||
| 12
    
        Смотрящий 30.09.23✎ 21:41 | 
        (11) Мнение же ж ... Это как "британские ученые доказали" ...     | |||
| 13
    
        MWWRuza 30.09.23✎ 22:34 | 
        (11) Ну... Трудно сказать, но, даже в моем примере(запрашивал только что), дата обновления достаточно свежая. Не думаю, что это одна карточка обновлена. Скорее всего, что есть в ЕГРЮЛ, то и тут есть.     
 | |||
| 14
    
        Злопчинский 30.09.23✎ 22:54 | 
        тут на основе инфостартовской делал проверку действительности клиента на моменты взаиморасчетов, может кому пригодится.
 https://dropmefiles.net/ru/mKyvPLek | |||
| 15
    
        Duke1C 02.10.23✎ 09:15 | 
        (14) Не работает ссыль     | |||
| 16
    
        Builder 02.10.23✎ 09:27 | 
        (15) Работает, подождать надо до появления ссылки.     | |||
| 17
    
        Кир Пластелинин 02.10.23✎ 10:38 | 
        (5) "Вот не пойму - чего такого есть в "1С:Контрагент" по подписке ИТС" - мб то, что он прописан во всех типовых?     | |||
| 18
    
        MWWRuza 02.10.23✎ 11:16 | 
        (17) Видимо, да. 
 Если использовать типовые - то однозначно, зачем что-то писать, когда это и так есть :-) А тем более если интересующийся не программист, а какой-нибудь бухгалтер, то даже готовую обработку с инфостарта будет проблематично использовать, особенно, если версия базовая... Сейчас стало модно все расширениями делать, но, они не работают в базовых версиях(кроме подписанных самой 1С)... Хотя, тут тоже можно использовать как внешнюю обработку, вроде никто не запрещал... Да, не очень удобно, но можно - я же привязал базу ШК от ОлегОна к базовой рознице, ничего, работают. Тут можно аналогично. Но!!! Сабж то изначально по 7.7...А там, какие типовые поддерживают этот сервис? По любому писать с нуля... А тут, если уж делать, то с ДаДатой удобнее и дешевле. Я так понимаю, подписки на ИТС мало(по крайней мере - техно, в проф может быть), нужно еще и сервис дополнительно подключать и оплачивать(не знаю точно, но что-то 500 руб на слуху, х.з за какой период)... | |||
| 19
    
        MWWRuza 02.10.23✎ 11:26 | 
        (15) А ссылка у меня тоже не работает...
 (16) Тут хоть жди, хоть не жди - все ожидания заканчиваются этим: 
 | |||
| 20
    
        Aleksey 02.10.23✎ 11:30 | 
        (18) в техно и базовых нет контрагента, он покупается отдельно. В проф там 7200 обращений за год.
 Цена 4800 на год (максимум 7200 обращений, нужно больше покупай еще раз). Или 3500 в месяц безлимит | |||
| 21
    
        Builder 02.10.23✎ 11:30 | 
        (19) Ну ХЗ, я скачал, может провайдеры блочат?     | |||
| 22
    
        Aleksey 02.10.23✎ 11:40 | 
        (21) кто провайдер? у меня ростелеком и мегафон не открывают     | |||
| 23
    
        MWWRuza 02.10.23✎ 11:47 | 
        (22) У меня тоже РосТелеком... Других не пробовал - без особой надобности. Просто интересно было взглянуть, без практическогй цели применения у себя. Если уж понадобилось бы - обратился бы к Злопу на прямую... 
 Но, все равно не порядок со ссылкой - какая-то "кривая" файлопомойка :-( | |||
| 24
    
        Builder 02.10.23✎ 11:54 | 
        (23) Переложил, ловите :) 
 https://disk.yandex.ru/d/tsoVwuh0g9NbuQ | |||
| 25
    
        Aleksey 02.10.23✎ 12:39 | 
        дом ру и теле2 тоже не открывают, хотя через впн работает     | |||
| 26
    
        MWWRuza 02.10.23✎ 13:00 | 
        (24) Там к ней еще как минимум 3 функции из ГМ нужно:
 глПолучитьИНН - ну, тут нужно из строки ИНН/КПП выделить ИНН. глПолучитьКПП - тут, аналогично КПП. глОчисткаТЗ - а тут, не совсем понятно по названию, только строки удалить, или вообще всю структуру, с колонками? Разбираться лень :-) Я не знаю, может это типовые функции ТиС последних релизов, у меня далеко не типовая, хоть и на базе ТиС, таких функций нет. | |||
| 27
    
        Builder 02.10.23✎ 13:03 | 
        (26) Я не автор, я просто переложил обработку :)     | |||
| 28
    
        MWWRuza 02.10.23✎ 13:05 | 
        (27) Я понял. Это я для Злопа, просто ворчу :-)     | |||
| 29
    
        victuan1 03.10.23✎ 05:44 | 
        (26) Нет этих функций в релизах типовой ТИС (включая последние).     | |||
| 30
    
        ЯнСмит 03.10.23✎ 20:01 | 
        (29) глобальных да, нет, но есть локальные ПолучитьИНН и ПолучитьКПП, абсолютно идентичные и раскиданные по десятку-другому куче модулей )     | |||
| 31
    
        Злопчинский 03.10.23✎ 22:01 | 
        //******************************************************************************
 // ОчисткаТЗ() // Параметры: ТЗ, которую надо очистить // В ТЗ д.б. Колонки с идентификаторами "НадоУдалить" и "ОПС" (оригинальный порядок строк) // Описание: очищает ТЗ от ненужных строк Процедура глОчисткаТЗ(ТЗдляЧистки, ОПС="+ОПС", КолонкаУдалить="НадоУдалить", Режим=0) Экспорт Попытка НадоУдалить = ТЗдляЧистки.Итог(КолонкаУдалить); Исключение Возврат; КонецПопытки; ТЗКС = ТЗдляЧистки.КоличествоСтрок(); Если Режим <> 0 Тогда Сообщить("> ["+ТекущееВремя()+"]: *** удаляем "+НадоУдалить+" из "+ТЗКС+" ****"); КонецЕсли; Если НадоУдалить <= 0 Тогда Возврат; КонецЕсли; Если НадоУдалить >= ТЗКС Тогда ТЗдляЧистки.УдалитьСтроки(); Иначе ТЗРаб = СоздатьОбъект("ТаблицаЗначений"); ТЗдляЧистки.Выгрузить(ТЗРаб); ТЗРаб.Сортировать("+"+КолонкаУдалить); ТЗРаб.Выгрузить(ТЗдляЧистки,1,ТЗКС-НадоУдалить); ТЗРаб = 0; КонецЕсли; Если ПустаяСтрока(ОПС) = 1 Тогда Возврат; КонецЕсли; //сортировать не надо Если ОПС = "###" Тогда Возврат; КонецЕсли; //сортировать не надо //восстановим оригинальный порядок строк ТЗдляЧистки.Сортировать(ОПС); КонецПроцедуры //глОчисткаТЗ() | |||
| 32
    
        Харлампий Дымба 04.10.23✎ 00:00 | 
        Помню такое, да Пропуск из ТЗ элементов
 Только недавно понял, почему всё-таки такой кусок не работает правильно, хотя казалось бы: ТЗ.Сортировать("НадоОставить-"); ТЗ.КоличествоСтрок(ТЗ.Итог("НадоОставить")); | |||
| 33
    
        Злопчинский 04.10.23✎ 00:21 | 
        (32) "Только недавно понял, почему всё-таки такой кусок не работает правильно,"
 - и почему? (по ссылке объяснение дано типа "такова данность движка"), ты что-то новое понял? | |||
| 34
    
        Злопчинский 04.10.23✎ 00:24 | 
        надо проверить
 . код ТЗРаб = СоздатьОбъект("ТаблицаЗначений"); ТЗдляЧистки.Выгрузить(ТЗРаб); ТЗРаб.Сортировать("+"+КолонкаУдалить); ТЗРаб.Выгрузить(ТЗдляЧистки,1,ТЗКС-НадоУдалить); заменить на ТЗдляЧистки.Сортировать("+"+КолонкаУдалить); ТЗдляЧистки.Выгрузить(ТЗдляЧистки,1,ТЗКС-НадоУдалить); . должно сработать | |||
| 35
    
        Злопчинский 04.10.23✎ 00:40 | 
        угу.. ТЗ можно выгружать саму в себя
 . //******************************************* Процедура Сформировать() ТЗдляЧистки = СоздатьОбъект("ТаблицаЗначений"); ТЗдляЧистки.НоваяКолонка("Наименование","Строка"); ТЗдляЧистки.НоваяКолонка("НадоУдалить","Число",1,0); Для ы=1 по 20 Цикл ТЗдляЧистки.НоваяСтрока(); ТЗдляЧистки.Наименование = "строка "+Формат(ы,"Ч(0)2"); ТЗдляЧистки.НадоУдалить = ы%2; КонецЦикла; //ПечатьТЗ(ТЗдляЧистки,"исходная, ДО"); ТЗдляЧистки.ВыбратьСтроку(,"исходная, ДО"); ТЗКС = ТЗдляЧистки.КоличествоСтрок(); НадоУдалить = ТЗдляЧистки.Итог("НадоУдалить"); ТЗдляЧистки.Сортировать("+НадоУдалить"); ТЗдляЧистки.Выгрузить(ТЗдляЧистки,1,ТЗдляЧистки.КоличествоСтрок()-НадоУдалить); //выгружаем в саму себя ТЗдляЧистки.Сортировать("Наименование"); // "ОПС" //ПечатьТЗ(ТЗдляЧистки,"результат, ПОСЛЕ"); ТЗдляЧистки.ВыбратьСтроку(,"результат, ПОСЛЕ"); КонецПроцедуры // Сформировать() | |||
| 36
    
        Злопчинский 04.10.23✎ 00:42 | 
        //******************************************************************************
 // ОчисткаТЗ() // Параметры: ТЗ, которую надо очистить // В ТЗ д.б. Колонки с идентификаторами "НадоУдалить" и "ОПС" (оригинальный порядок строк) // Описание: очищает ТЗ от ненужных строк Процедура глОчисткаТЗ(ТЗдляЧистки, ОПС="+ОПС", КолонкаУдалить="НадоУдалить", Режим=0) Экспорт Попытка НадоУдалить = ТЗдляЧистки.Итог(КолонкаУдалить); Исключение Возврат; КонецПопытки; ТЗКС = ТЗдляЧистки.КоличествоСтрок(); Если Режим <> 0 Тогда Сообщить("> ["+ТекущееВремя()+"]: *** удаляем "+НадоУдалить+" из "+ТЗКС+" ****"); КонецЕсли; Если НадоУдалить <= 0 Тогда Возврат; КонецЕсли; Если НадоУдалить >= ТЗКС Тогда ТЗдляЧистки.УдалитьСтроки(); Иначе ТЗдляЧистки.Сортировать("+"+КолонкаУдалить); ТЗдляЧистки.Выгрузить(ТЗдляЧистки,1,ТЗКС-НадоУдалить); КонецЕсли; Если ПустаяСтрока(ОПС) = 1 Тогда Возврат; КонецЕсли; //сортировать не надо Если ОПС = "###" Тогда Возврат; КонецЕсли; //сортировать не надо //восстановим оригинальный порядок строк ТЗдляЧистки.Сортировать(ОПС); КонецПроцедуры //глОчисткаТЗ() | |||
| 37
    
        Харлампий Дымба 04.10.23✎ 00:50 | 
        (35) Опа. А я даже и не пытался. Запишу в книжечку > ТЗ можно выгружать саму в себя     | |||
| 38
    
        Злопчинский 04.10.23✎ 00:53 | 
        (37) я когда-то давно это проверял. но обычно не использую.
 решил проверить еще раз, мало ли что... | |||
| 39
    
        Харлампий Дымба 04.10.23✎ 01:54 | 
        (34) Суть в том, что Сортировать не меняет саму таблицу, а добавляет к ней просто индекс. И если Выгрузить() или ВыбратьСтроки() отрабатывают потом в такой таблице по индексу, то про Колич в функции ТЗ.КоличествоСтрок(Колич) видимо забыли, и она спокойно себе обрезает таблицу, как будто там остался старый порядок строк. Код для иллюстрации
 ТЗ1=СоздатьОбъект("ТаблицаЗначений"); ТЗ=СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Кол1"); ТЗ.НоваяСтрока(); ТЗ.Кол1=7; ТЗ.НоваяСтрока(); ТЗ.Кол1=3; ТЗ.НоваяСтрока(); ТЗ.Кол1=5; Сообщить("Исходная:"+СимволТабуляции+ЗначениеВСтроку(ТЗ)); ТЗ.Сортировать("Кол1"); Сообщить("Сортировка:"+СимволТабуляции+ЗначениеВСтроку(ТЗ)); ТЗ.Выгрузить(ТЗ1); Сообщить("Выгрузка:"+СимволТабуляции+ЗначениеВСтроку(ТЗ1)); ТЗ.КоличествоСтрок(2); Сообщить("Подрезка:"+СимволТабуляции+ЗначениеВСтроку(ТЗ)); Обрати внимание: После сортировки появляется строка с индексами, но сама таблица остаётся без изменений; После выгрузки строка индексов исчезает и порядок строк в таблице меняется в соответствие с сортировкой; После подрезки строки берутся по порядку без учета сортировки, а строка с индексами перестраивается и вместо ожидаемых 3,5 тебе в сортированной и подрезанной таблице приходят исходные 7,3. Такая же байда будет и с Заполнить() - если ты укажешь конкретные строки для заполнения, то будут изменены не те номера строк которые ты видишь в сортированной таблице, а те которые были в исходной. | |||
| 40
    
        MWWRuza 04.10.23✎ 11:34 | 
        (39) Прикольно... :-(  Такой глюк в работе встретишь, затрахаешься разбираться, "почему все криво".
 Спасибо. Буду знать. | |||
| 41
    
        MWWRuza 04.10.23✎ 11:50 | 
        А по сабжу - у Злопа там не 1С:Контрагент и не ДаДата, там:
 URL = "http://npchk.nalog.ru/FNSNDSCAWS_2" т.е. непосредственно с ФНС данные тянутся, надо попробовать на досуге :-) | |||
| 42
    
        victuan1 05.10.23✎ 05:11 | 
        (41) Вроде этот запрос используется в типовых клюшках в регламентированной отчетности "Декларация НДС".     | |||
| 43
    
        Злопчинский 05.10.23✎ 23:55 | 
        (39) понятно с индексом.
 По идее КоличествоСТрок() на УВЕЛИЧЕНИЕ количества должно отработать нормально. Кстати, может и починится трабл после такого оператора...? | |||
| 44
    
        Харлампий Дымба 06.10.23✎ 01:07 | 
        (43) Нет, не починит - индексная строка останется и будет увеличена на количество добавленных строк. Но и необходимости чинить трабл нет, потому что отсортированная таблица - нормальная. Просто несколько функций в редко используемых вариантах ведут себя в отсортированной таблице некорректно. Что в общем-то понятно, учитывая что ТаблицаЗначений это абсолютно новый инструмент, отличающий 7.7 от 7.5, поэтому за десяток рабочих релизов её до ума так и не довели. Просто, ну кто использует КоличествоСтрок() с параметром? Никто. Кто использует Заполнить() не для полной таблицы, а для её части? Кто пользуется СдвинутьСтроку()? Кто пользуется  НайтиЗначение(блабла,СтрТЗ,КолТЗ) с непустыми СтрТЗ и КолТЗ одновременно? Отсортировал таблицу и заполняй/выводи перебором или выгружай дальше - а тут она нормально отрабатывает. Если прям надо реально очистить от индексной строки, то сделай ТЗ.Выгрузить(ТЗ1) и ТЗ1 - будет идеальная.
 Ну мы от subj куда-то далеко ушли, в ТаблицеЗначений вообще много чудес. | |||
| 45
    
        Злопчинский 22.10.23✎ 02:19 | 
        (44) все именно так как ты описал, и это твое последнее замечание не прочитал ранее. А сейчас столкнулся с траблом Заполнить для части таблицы полсе применени Сортировать и СдвинутьСТроки - и все получается плохо... ;-) Только лечить отсортированную ТЗ через выгрузку в промежуточный буфер а из буфера выгружать снова в ТЗ...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |