Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 16:15

Поиск в табличной части документа

Автор Liones23, 28 сен 2015, 08:27

0 Пользователей и 1 гость просматривают эту тему.

Liones23

Нужно при сохранении документа в поле табличной части записать ссылку на него.
Версия 8.3, управляемое приложение.

Вот процедура передачи ссылки:
Процедура ЗаписатьОснование()
Док=Объект.Документ.ПолучитьОбъект();
ТЧ=Док.ТабличнаяЧасть;
Отбор=Новый Структура;
Отбор.Вставить("НомерСтроки",НомерСтроки);
Стр=ТЧ.НайтиСтроки(Отбор);
Если Стр.Количество()<>0 Тогда
Стр[0].Основание=Объект.Ссылка;
Док.Записать();
КонецЕсли;
КонецПроцедуры;

Документ получает, смотрела в отладчике. Искомый номер строки 100% есть в табличной части, но не находит.
Что я тут упустила?

cska-fanat-kz

смею утверждать, что по "НомерСтроки" метод НайтиСтроки() не ищет.

замените на...
    ТЧ[НомерСтроки-1].Основание = Объект.Ссылка;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Liones23

пробовала и по другим реквизитам, не помогает
Добавлено: 28 сен 2015, 08:52


удивительно, что в других модулях я подобной процедурой пользовалась и все работало

cska-fanat-kz

Цитата: Liones23 от 28 сен 2015, 08:27ТЧ=Док.ТабличнаяЧасть;

табличная часть точно называется "ТабличнаяЧасть"?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Liones23


vitasw

Чудес не бывает.
Попробуйте вместо метода "НайтиСтроки" использовать "Найти".
А вообще - очень странная технология... пользователям запрещено изменять состав строк?

Liones23

Цитата: vitasw от 28 сен 2015, 09:59пользователям запрещено изменять состав строк?
если вы имеете ввиду добавление/удаление, сортировку - нет не запрещено, а руками менять реквизит Основание - запрещено


KrivosheevEV

Цитата: Liones23 от 28 сен 2015, 08:27
Что я тут упустила?

1. Получение документа;
2. Поиск в табличной части. Запись результатов в массив;
3. Изменение строки в найденном массиве;
4. Запись документа.

Ошибка в том, что изменяется найденный массив, а не табличная часть документа.

vitasw

Цитата: Liones23 от 28 сен 2015, 10:53если вы имеете ввиду добавление/удаление, сортировку - нет не запрещено
Ок. Рабочая ситуация: в новом созданном документе пользователь отсортировал строки как ему нужно, а дальше выполняется ваш код по изменению документа-основания. Что будет?
Добавлено: 28 сен 2015, 11:18


Цитата: KrivosheevEV от 28 сен 2015, 11:01Ошибка в том, что изменяется найденный массив, а не табличная часть документа.

Фигню говорите. Массив содержит строки документа и операции выполняются как раз над строками документа.

Liones23

Цитата: vitasw от 28 сен 2015, 11:16отсортировал строки как ему нужно,
я понимаю к чему вы ведете.
Но проблема не в этом. Я понимаю, что возможно поиск строки по реквизиту "НомерСтроки" - не правильная мысль.
НО дело в том, что строки не находятся ни по одному из реквизитов.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск