|
Как программно заполнить контактную инф данными из ФНС? БП3.0 внешн | ☑ | ||
---|---|---|---|---|
0
Shecurok
07.04.21
✎
19:39
|
Добрый вечер. Пишу внешнюю обраюотку для бух 3.0, и тут у меня создаются новые контрагенты, есл не найдены были в базе. Всё отлично записывается, кроме конт. информации. Процедуру взял типовую. Ошибка на моменте Строки = ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); пишет, что поле КонтИнф... не найдено. Судя по всему ЭтотОбъект она считает не нового контрагента, а эту самую внешнюю обработку. Как переделать? Весь код выглдяит так:
Если ЭтоЮрЛицо Тогда // Заполнение адресов //++++++++++++++++++++++++++++++++++++++++ //РАБОТАЕТ, НО НАМ НАДО ИЗ ФСИН АДРЕС ПОЛУЧАТЬ //Об=СпрКонтрагент; //Адрес=Об.КонтактнаяИнформация.Добавить(); //Адрес.Тип=Перечисления.ТипыКонтактнойИнформации.Адрес; //Адрес.Вид=Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; //Адрес.Представление=Строка(СтрокаТЗ.АдресПокупателя); //Об.Записать(); //---------------------------------------- ЗаполнитьЭлементКонтактнойИнформации(СпрКонтрагент, "КонтактнаяИнформацияПолеЮрАдресКонтрагента", РеквизитыКонтрагента.ЮридическийАдрес); ЗаполнитьЭлементКонтактнойИнформации(СпрКонтрагент, "КонтактнаяИнформацияПолеФактАдресКонтрагента", РеквизитыКонтрагента.ЮридическийАдрес); ЮрФактАдресаСовпадают = Истина; ЗаполнитьЭлементКонтактнойИнформации(СпрКонтрагент, "КонтактнаяИнформацияПолеПочтовыйАдресКонтрагента", РеквизитыКонтрагента.ЮридическийАдрес); ЮрПочтовыйАдресаСовпадают = Истина; <...> &НаСервере Процедура ЗаполнитьЭлементКонтактнойИнформации(СпрКонтрагент, ИмяРеквизита, СтруктураДанных) Если СтруктураДанных = Неопределено Тогда Возврат; КонецЕсли; Отбор = Новый Структура("ИмяРеквизита", ИмяРеквизита); Строки = ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); ДанныеСтроки = ?(Строки.Количество() = 0, Неопределено, Строки[0]); Если ДанныеСтроки = Неопределено Тогда Возврат; КонецЕсли; ЗаполнитьЗначенияСвойств(ДанныеСтроки, СтруктураДанных); ДанныеСтроки.Значение = СтруктураДанных.КонтактнаяИнформация; ЭтотОбъект[ИмяРеквизита] = СтруктураДанных.Представление; КонецПроцедуры |
|||
1
Garykom
гуру
07.04.21
✎
19:43
|
гугл программист однако
|
|||
2
Shecurok
07.04.21
✎
19:43
|
Если что, СпрКонтрагент видит корректно. с типом Объект
|
|||
3
Garykom
гуру
07.04.21
✎
20:02
|
(2) ну и если логически подумать? совсем немного
|
|||
4
Shecurok
07.04.21
✎
20:06
|
(3) ну я понимаю, что этого поля там нет. Его надо откуда то добавить. А вот откуда не пойму
|
|||
5
Garykom
гуру
07.04.21
✎
20:12
|
Ответь что такое "КонтактнаяИнформацияОписаниеДополнительныхРеквизитов"? Если ответ "не знаю" то упс, вам пора нанять программиста |
|||
6
Garykom
гуру
07.04.21
✎
20:13
|
(5)+ Подумай у этого объекта вызывают некую функцию НайтиСтроки(Отбор)
Глянь в СП что это? |
|||
7
Shecurok
07.04.21
✎
20:17
|
(5) смею предположить, что это коллекция, вроде так называется. Смотрел через отладчик в модуле формы спр контрагенты. Там это есть, соответственно ошибки нет. У меня нет, это надо добавить... поиск по ключевым словам пока мне не помог
|
|||
8
Shecurok
07.04.21
✎
20:20
|
(6) ну судя по сп я близок был к правде. Осуществляет поиск строк из коллекции строк дерева значений
|
|||
9
Garykom
гуру
07.04.21
✎
20:24
|
(7) >это надо добавить
добавить фигня, вот заполнить... |
|||
10
Garykom
гуру
07.04.21
✎
20:25
|
но проще выкинуть все это и написать правильно
|
|||
11
Shecurok
07.04.21
✎
20:25
|
(10) где можно подсмотреть?)
|
|||
12
Shecurok
07.04.21
✎
20:25
|
копать судя по всему в сторону общего модуля УправлениеКонтактнойИнформацией
|
|||
13
Garykom
гуру
07.04.21
✎
20:26
|
||||
14
Garykom
гуру
07.04.21
✎
20:27
|
(12) в БП3 КИ находится в ТЧ объектов, банально же
Нахер общий модуль |
|||
15
Cthulhu
07.04.21
✎
20:28
|
F11
|
|||
16
Shecurok
07.04.21
✎
20:31
|
(14) откуда начинать в таком случае, чтоб привело к месту где эта коллекция заполняется и появляется. хотя тут уже туплю, скорее всего пр нажатии на кнопку заполнить по ИНН)
|
|||
17
Shecurok
07.04.21
✎
20:32
|
(14) в каком месте мне реально копать, чтоб это найти?
|
|||
18
Shecurok
07.04.21
✎
20:39
|
полная поебота эти коллекции и пр дерьмо.
|
|||
19
Shecurok
07.04.21
✎
20:39
|
но сделать надо
|
|||
20
Shecurok
07.04.21
✎
20:43
|
буду писать здесь и как будто с кем то общаюсь. Смотрю у себя в обработке строчку ЗаполнитьЗначенияСвойств(СпрКонтрагент, РеквизитыКонтрагента);.
В реквизитыКонтрагента есть рквизт юр.адрес с тем, что мне и надо. Угу. Пошли дальше |
|||
21
Shecurok
07.04.21
✎
20:46
|
Дальше ничего особоенного нет, только заполнение истории ки
|
|||
22
Shecurok
07.04.21
✎
20:48
|
потом сразу строка ЗаполнитьЭлементКонтактнойИнформации(СпрКонтрагент, "КонтактнаяИнформацияПолеЮрАдресКонтрагента", РеквизитыКонтрагента.ЮридическийАдрес);
которая и переносит меня в процедуру где ошибка встречается... окее. посомтрим что идет в документе при заполнении по инн контр, начиная с кнопки заполнить |
|||
23
Shecurok
07.04.21
✎
20:50
|
Тут мы через все если проскакиваем и попадаем в процедуру Процедура ВыполнитьЗаполнениеРеквизитовПоИНН(ПроверитьИНН = Ложь). Ну пошли
|
|||
24
Shecurok
07.04.21
✎
20:58
|
Так, ну тут были пару момоентом с переходмаи в другие процедуры и пр, но единственное наверн, что может быть интересно это процедура РеквизитыЮридическогоЛицаПоИНН, где мы их заполнили. Т.е. адрес появился в реквизите, но он еще где то там
|
|||
25
Shecurok
07.04.21
✎
21:02
|
прошли процедуру ДанныеЕдиныхГосРеестровПоИНН(ИННОбъекта, ЭтоЮрЛицо);, получили ДанныйЗаполнения. Но там тоже вроде ничего такого
|
|||
26
Shecurok
07.04.21
✎
21:06
|
Переходим в процедуру ЗаполнитьРеквизитыНаСервере(АдресРеквизитовКонтрагента, ПроверитьИНН)
Тут первые две строчки сразу РеквизитыКонтрагента = ПолучитьИзВременногоХранилища(АдресРеквизитовКонтрагента); Если Объект.ЮридическоеФизическоеЛицо <> РеквизитыКонтрагента.ЮридическоеФизическоеЛицо Тогда Вид = ?(РеквизитыКонтрагента.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо, "ЮридическоеЛицо", "ФизическоеЛицо"); ВидПриИзмененииНаСервере(); Встаем на Если Объект...., смотрим отладчиком что у нас там по объекту... А там уже все это есть. Збс. Класс. Где упустил, хрен знает. Завтра попробую продублровать это все в обрабтку, сомневаюсь, что из этого что-то выйдет, но всё же. КонецЕсли; |
|||
27
Shecurok
08.04.21
✎
10:12
|
Хотел как лучше, получилось как всегда...
Забил я пока на эти коллекции данных, у меня же адрес из ФНС был в РеквизитыКонтрагента. В итоге сделал так: Об=СпрКонтрагент; Адрес=Об.КонтактнаяИнформация.Добавить(); Адрес.Тип=Перечисления.ТипыКонтактнойИнформации.Адрес; Адрес.Вид=Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; //Адрес.Представление=Строка(СтрокаТЗ.АдресПокупателя); Адрес.Представление=РеквизитыКонтрагента.ЮридическийАдрес.Представление; Об.Записать(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |