Имя: Пароль:
1C
 
Дополнительные данные
🠗 (Волшебник 09.10.2023 09:29)
,
0 A1nurich
 
06.10.23
11:56
Для Каждого Стр из СсылкаНаОбъект Цикл	
	
ДопСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Директор"); 																					  
ОбластьШапкиДанных.Параметры.Пункт0_4 = Стр.Контрагент.ДополнительныеРеквизиты.Найти(ДопСвойство).значение; 

КонецЦикла;


При помощи этого кода пытаюсь достать из доп данных "Директора", где СсылкаНаОбъект - это ссылка на партнеров, с него нужно ссылаться к контрагенту и от туда уже достаем директора, но выдает такую ошибку:

Итератор для значения не определен
{ВнешняяОбработка.ДоговорПоставкоДем.МодульОбъекта(81)}:Для Каждого Стр из СсылкаНаОбъект Цикл
{ВнешняяОбработка.ДоговорПоставкоДем.МодульОбъекта(38)}:УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
{ВнешняяОбработка.ДоговорПоставкоДем.Форма.ФормаНастроек.Форма(61)}:ОбработкаОбъект.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода, ПараметрыПечати);
{ВнешняяОбработка.ДоговорПоставкоДем.Форма.ФормаНастроек.Форма(42)}:МассивПечатныхФорм = ПечатьНаСервере(ОбъектыПечати, СтркутураДанных);
1 Волшебник
 
06.10.23
11:57
Вам надо проверить тип переменной СсылкаНаОбъект
Цикл "Для Каждого" можно применять только к коллекциям.
2 Donkey_hot
 
06.10.23
12:35
(0) Вам вчера написали метод из БСП, в котором есть всего два параметра. Первый - сама ссылка на контрагента, второй - доп.свойство, которое вы тут худо-бедно находите. В чем проблема?
3 A1nurich
 
06.10.23
12:36
(2) Вчера наткнулся на этот метод, так как он легче, с вчерашним методом пробовал, но так и не получилось получить нужные данные
4 Donkey_hot
 
06.10.23
12:44
(3) Похоже, вам отладчик запустить сложнее, чем создать 100500 тем на форуме.

ДопСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Директор");
Директор = УправлениеСвойствами.ЗначениеРеквизита(Стр.Контрагент, ДопСвойство);


Что конкретно тут не работает?
(вопрос правильности поиска по наименованию пока опустим)
5 A1nurich
 
06.10.23
12:49
(4) Как раз таки отладчиком и работал, но там не было данных, которые мне нужны.
Тут проблема в том, что я пока не могу додуматься, что использовать в цикле, как коллекцию, от куда будут вытягиваться нужные данные. Нужно как-то туда справочник контрагента закинуть
6 Волшебник
 
06.10.23
12:52
(5) Старайтесь...
7 A1nurich
 
06.10.23
12:55
(6) Да я итак стараюсь... Пытаюсь каждый день что-то понимать, так как новичек в 1Ске, пока что не всё понятно...
8 Волшебник
 
06.10.23
12:59
(7) Нет, мало стараетесь. До сих пор не поняли понятие "тип". Не различаете тип реквизита и тип переменной. Пытаетесь работать с переменными, не обращая внимания на их тип.
9 A1nurich
 
06.10.23
13:00
(8) Я знаю, что такое тип, а как работать с ними в 1С, да, пока проблемы есть
10 Donkey_hot
 
06.10.23
13:07
(9) Вы даже не пытаетесь воспользоваться тем, что Вам советуют. К сожалению, создать рабочий код путем простого угадывания будет очень непросто.
11 A1nurich
 
06.10.23
13:09
(10) Всё, что мне советовали, я сидел, изучал, пытался, читал и смотрел видеоролики по этим темам. Везде разные методы и тд, в итоге я не смог этим правильно воспользоваться, поэтому принял решение найти другой метод решения проблемы
12 Волшебник
 
06.10.23
13:15
(11) Метод угадывания программного кода?
13 A1nurich
 
06.10.23
13:18
(12) Почему угадывания то ? Я же не ставлю наугад всё, что попала, а то, что по моему мнению может подойти
14 Donkey_hot
 
06.10.23
13:20
(11) Серьезно? Вам в (4) дали готовый код из 2 (двух, Карл!!!) строк. Скопируйте себе, запустите отладку, проанализируйте а) заполняется ли значение переменной ДопСвойство б) заполняется ли значение переменной Директор.
15 Волшебник
 
06.10.23
13:21
(13) Да-да, Вы ставите наугад то, что по Вашему мнению может подойти. Это и есть угадывание.
16 Stepashkin
 
06.10.23
13:21
(4) Пользоваться отладчиком - еще то искусство. Но я знаю одного человека, который вместо отладчика вставляет кучу сообщений и по ним ориентируется. Я когда узнал, молча ушел, а потом долго ржал).
17 Волшебник
 
06.10.23
13:24
(16) На самом деле вполне рабочий метод, если отладчика нет или идёт переброска между языками. Например, такое бывает при взаимодействии клиентского JavaScript и серверного PHP. Ну какой там может быть общий отладчик?

Скажем так. Отладчик есть не всегда, а вывод сообщений (или другой способ подачи признака выполнения программного кода) есть всегда.
18 Волшебник
 
06.10.23
13:24
на продакшене могут не поставить флаг -debug на сервере, значит отладки на проде не будет.
19 Stepashkin
 
06.10.23
13:25
(17) Во. Этого я еще не знал. Благодарю.
20 Donkey_hot
 
06.10.23
13:27
(17) Это да, даже термин слышал "отладочная печать". Но к кейсу ТС-а это, конечно, не относится.
21 A1nurich
 
06.10.23
13:27
(14) Там также используется цикл "Для каждого", я пытался, но я же говорю, что проблема в том, что я понимаю, что можно вставить туда...
22 Donkey_hot
 
06.10.23
13:28
(21) в (4) используется цикл Для Каждого?
23 A1nurich
 
06.10.23
13:29
(22) Стр.Контрагент, ну вот же, вы использовали Стр
24 Stepashkin
 
06.10.23
13:30
Стр - Строка
25 Donkey_hot
 
06.10.23
13:30
(23) Я уже просто в миллионе ваших тем потерял, откуда у вас что берется, где партнер, где контрагент. Можете внятно описать, в какой форме пытаетесь получить директора, какие у нее есть реквизиты, табличные части?
26 A1nurich
 
06.10.23
13:32
(25) В контрагенте есть дополнительные вкладки, в одной из них храниться директор
27 Donkey_hot
 
06.10.23
13:34
(26) Это понятно, дополнительный реквизит. А получить вы его где пытаетесь?
28 A1nurich
 
06.10.23
13:34
(26) Этих вкладов нету в самом справочнике, вот я ищу методы, как к ним ссылаться можно
29 A1nurich
 
06.10.23
13:35
(27) есть справочник, где есть доп данные, а также регистр сведений
30 Donkey_hot
 
06.10.23
13:35
(28) см. (4)
31 Donkey_hot
 
06.10.23
13:36
(29) Круто. Где пытаетесь получить директора?
32 A1nurich
 
06.10.23
13:36
(27) Я вот у себя в базе с внешней обработки нашел (0), где также достали доп данные
33 A1nurich
 
06.10.23
13:37
(30) Да я уже смотрел много раз, ЗначениеРеквизита - его нету нигде
34 Donkey_hot
 
06.10.23
13:38
(33) Ладно, я крайний раз задам вопрос: где пытаетесь получить директора? Не хотите, чтобы Вам помогли - дело Ваше. Можете продолжать выуживать рандомные фрагменты из рандомных внешних обработок.
35 A1nurich
 
06.10.23
13:40
(34) В контрагенте есть табличная часть, где написано доп данные, я думаю, что данные директора находятся там, вот я и пытаюсь при помощи кода (0) попробовать его от туда вытащить
36 A1nurich
 
06.10.23
13:42
Всё, я разобрался...
В коде (0) просто убрал цикл и ссылался напрямую к контрагенту, всё получилось
37 Donkey_hot
 
06.10.23
13:43
(35) Ок, давайте остановимся на том, что из нас двоих что-то не так именно со мной. Забудьте про (4).
38 A1nurich
 
06.10.23
13:58
(37) Скорее всего я просто неправильно объяснил, что мне нужно было получить
39 Stepashkin
 
06.10.23
13:59
(38) +++++++
40 Donkey_hot
 
06.10.23
14:41
(36)
На самом деле, не получилось ничего.
Чисто ради пищи для размышлений Вам (не уверен, что она необходима, но все-таки):

а) Что произойдет при выполнении кода из (0), если в системе существуют доп.реквизиты с наименованием "Директор" у нескольких сущностей (например, помимо контрагентов, еще у организаций, складов и т.п.)?

б) Что произойдет при выполнении кода из (0), если у вашего контрагента доп.реквизит "директор" не указан?
41 Valdis2007
 
06.10.23
15:12
(16) так это еще более менее удобно...а вот разбирать отладочный дамп памяти, менее занятно))
42 A1nurich
 
07.10.23
12:05
(40) а) я ищу из доп данных справочника контрагентов.
б) просто будет пустая строка, а так мне сказали, что везде директор указан.
43 Волшебник
 
07.10.23
12:08
(42) >> мне сказали, что везде директор указан.

"Все врут." (с) Доктор Хаус
44 АгентБезопасной Нацио
 
07.10.23
12:33
(4) "Миста-лучший отладчик!"©
45 АгентБезопасной Нацио
 
07.10.23
12:37
(16) это еще что! Вот когда-то давно (еще на клюшках работали) я ушел из одной конторы,  на мое место взяли "опытную программистку с 4-летним опытом", так она вообще не знала, что такое отладчик. Я понимаю, что тут тоже можно процитировать доктора Хауса, но "фак остается факом..."©
46 Donkey_hot
 
07.10.23
13:19
(42) Пока оба раза не туда.
47 Valdis2007
 
07.10.23
13:57
(45) так она вообще не знала, что такое отладчик...Возможно она настолько идеально писала код, что отладчик ей был просто не нужен)))
48 Stepashkin
 
09.10.23
09:15
(47) Таких людей не бывает.
49 Stepashkin
 
09.10.23
09:16
(45) Это была программистка, за которую за красивые глазки кодили другие программисты?
50 АгентБезопасной Нацио
 
09.10.23
10:18
(47) увы и ах, для отладки она писала логи в файл.
(49) Я ее видел только издалека, не заметил особой красивости (впрочем, "на вкус и цвет..."©)
в общем, ее уволили месяца через два-три... Сломать она ничего не успела.
51 Valdis2007
 
09.10.23
11:04
(50) для отладки она писала логи в файл....Это был суровый  "олдскульный" подход)))
52 Stepashkin
 
09.10.23
12:43
(50) У меня такая пришла одна кваказябра, за 2 недели успеха натворить дел. Директор ее уволил слава Богу.
53 maxab72
 
09.10.23
15:31
Журнал регистрации иногда удобен для собирания отладочной информации. Как-то пытался разобраться, почему вручную запущенный обмен с сайтом идет без проблем, а по регламентному заданию нет. Навставлял строк в обработку обмена, и получил наутро, что 1с не может прочитать файл с ответом сервера сайта (что логин прошел, и что можно отправлять файлы). - сисадмины что-то запретили лишнее. Дальше уже было все элементарно - скинул сисадминам информацию, и они разбирались...
54 maxab72
 
09.10.23
15:43
(52) бывает хуже. меня как-то замещала девочка из холдинга, она за 2 недели моего отпуска разбила нам весь чайный сервиз... на 12 персон.
55 Stepashkin
 
10.10.23
15:32
(54) =-)
Независимо от того, куда вы едете — это в гору и против ветра!