|
Нюансы и внимательность. НайтиСтроки, Найти | ☑ | ||
---|---|---|---|---|
0
Мультук
01.09.23
✎
15:34
|
Есть документ "Заказ клиента"
В таб.части товары есть товары (остальные столбцы не столь важны): НомерСтроки Номенклатура 1 Товар1 2 Товар2 3 Товар3 4 Товар1 Вопросы: 1) Что будет в МояСтрока: Неопределено или некаяСтрока из "Товары" ? 2) Чему равно Мас1.Количество() ? 3) Чему равно Мас3.Количество() ? 4) Чему равно Мас4.Количество() ? Код об = Объект.ЗаказКлиентаСсылка.ПолучитьОбъект(); МояСтрока = об.Товары.Найти(1, "НомерСтроки"); //Вопрос 1 Что будет в МояСтрока Неопределено или некаяСтрока из "Товары" ? мас1 = об.Товары.НайтиСтроки(Новый Структура("НомерСтроки", 1)); //Вопрос 2 Чему равно Мас1.Количество() ? //Мас2.Количество() равно 2 (ибо данная номенклатура в таб.части задублирована мас2 = об.Товары.НайтиСтроки(Новый Структура("Номенклатура", об.Товары[0].Номенклатура)); мас3 = об.Товары.НайтиСтроки(Новый Структура("НомерСтроки, Номенклатура", 1, об.Товары[0].Номенклатура)); //Вопрос 3. Чему равно Мас3.Количество() мас4 = об.Товары.Выгрузить().НайтиСтроки(Новый Структура("НомерСтроки, Номенклатура", 1, об.Товары[0].Номенклатура)); //Вопрос 4. Чему равно Мас4.Количество() P.S. Отцы должны ответить на все вопросы, а затем заклеймить, полить ядом и поджечь. Неофиты (надеюсь) почерпнут что-то новое, например, научатся новым матерным словам у отцов и поймут {всякое} |
|||
1
Asmody
01.09.23
✎
15:45
|
1) Строка ТЧ
2) 0 3) 2 4) 1 |
|||
2
Asmody
01.09.23
✎
15:46
|
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
|
|||
3
Галахад
01.09.23
✎
15:46
|
Вопрос зачем вообще что-то искать по номеру строки.
|
|||
4
unenu
01.09.23
✎
15:47
|
пора уже переходить к новым матерным
зачем этот цирк с конями? |
|||
5
Fedor-1971
01.09.23
✎
15:48
|
(0) Если правильно помню, то зависит от контекста
мас2 количество = 2, в прочих случаях ошибка выполнения, т.к. НомерСтроки недоступен для поиска и в ТЧ документа не хранится Оный номер есть только в наборе данных Формы |
|||
6
Asmody
01.09.23
✎
15:51
|
(5) С чего бы она не хранится? Очень даже хранится.
Только колонкой ТЧ не является. |
|||
7
Мультук
01.09.23
✎
15:53
|
(5)
>> в прочих случаях ошибка выполнения Увы, нет. Ответ (я так думаю) -- "так исторически сложилось" |
|||
8
H A D G E H O G s
01.09.23
✎
16:26
|
Что хотел сказать автор?
|
|||
9
H A D G E H O G s
01.09.23
✎
16:29
|
Дичь какая-то.
Гораздо веселее получить ДанныеЗаполнения=Неопределено в обработчике Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) выполнив это СтруктураЗаполнения=Новый Структура; Документ.Заполнить(СтруктураЗаполнения); И нормальную структуру, выполнив это СтруктураЗаполнения=Новый Структура("Заглушка",Истина); Документ.Заполнить(СтруктураЗаполнения); |
|||
10
Fedor-1971
01.09.23
✎
16:33
|
(8) Пробует что будет при поиске по НомерСтроки
|
|||
11
Мультук
01.09.23
✎
16:35
|
(8)
Короткий ответ: пятница P.S. Автор задумался: Почему 1С успешно ищет строку через об.Товары.Найти(1, "НомерСтроки"); но не ищет через об.Товары.НайтиСтроки(Новый Структура("НомерСтроки", 1)); А если не ищет, то почему не кидает исключение и т.п. Ну и надеялся обратить внимание неофитов, что "НомерСтроки" -- хреновый уникальный ключ (10) А чего тут пробовать? Верные ответы дал Asmodey |
|||
12
H A D G E H O G s
01.09.23
✎
16:35
|
(10) Если судьбинушка заставит меня искать по ТЧ вне запроса - я ее выгружу в ТЗ и добавлю индекс или поищу по merge
|
|||
13
Fedor-1971
01.09.23
✎
16:41
|
(9) Это как раз объяснимо: структура перед передачей в заполнение переписывается системой через внутренние преобразование в данные заполнения, соответственно пустая структура = Неопределено
(12) это понятно, но у неофитов могут возникнуть фантазии поискать и таким образом как у ТС (вот так у них звёзды сойдутся) |
|||
14
H A D G E H O G s
01.09.23
✎
17:32
|
(13) "структура перед передачей в заполнение переписывается системой через внутренние преобразование в данные заполнения"
Какие то фантазии, которые легко отвергаются кодом, который не упадет: СтруктураЗаполнения=Новый Структура("Заглушка",Истина); СтруктураЗаполнения.Вставить("ЦиклическаяСсылка",СтруктураЗаполнения); Документ.Заполнить(СтруктураЗаполнения); |
|||
15
sitex
naïve
01.09.23
✎
19:44
|
(0) Не там Вы решилим стресс тест проводить . Отцы , знаю , дети учат СП
|
|||
16
Asmody
12.09.23
✎
15:11
|
(0) Специально для тебя поправили в 8.3.24
Как стало Если метод табличной части Найти() не находит искомое значение и список колонок поиска состоит только из колонки НомерСтроки, то поиск по другим колонкам не выполняется. Рекомендуется проанализировать использование данного метода и устранить возможное использование некорректного поведения. В режиме совместимости с версией 8.3.23 поведение не изменилось. Как было Если метод табличной части Найти() не находит искомое значение и список колонок поиска состоит только из колонки НомерСтроки, то выполнялся поиск по всем колонкам табличной части. Источник: https://dl03.1c.ru/content/Platform/8_3_24_1201/1cv8upd_8_3_24_1201.htm#34de9fc3-172d-11ee-963f-0050569f678a |
|||
17
Garykom
12.09.23
✎
15:59
|
(16) Баг объявили фичей :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |