Сравнение значения реквизита ТЧ с значением запроса
Получаю из запроса ссылку на документ. Нужно если пользователь в реквизите табличной части выбрал документ, и он совпал с результатом запроса, то документ не проводиться.
Вот код:
Не работает, выдаёт ошибку:
Вот код:
Процедура ПриЗаписи(Отказ)
ТекущаяСтрока = ЭлементыФормы.ТЧ.ТекущаяСтрока;
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
| ДокументСмета.Ссылка КАК Смета
|ИЗ
| Документ.Смета КАК ДокументСмета
|ГДЕ
| ДокументСмета.Проведен
| И ДокументСмета.Утвержден";
Результат = Запрос.Выполнить();
Если ТекущаяСтрока.Источник <> Результат Тогда
ЭтотОбьект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
КонецЕсли;
ПоказатьНе работает, выдаёт ошибку:
Значение не является значением объектного типа (Источник)
Если ТекущаяСтрока.Источник <> Результат Тогда
По теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- Создание мульти-базовых отчетов. Все, что вы хотели об этом знать
- Распространенные ошибки разработчиков, приводящие к проблемам производительности
- Консоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений
- Автоматизация импорта значений в отбор типовых отчетов конфигурации 1С: Бухгалтерия предприятия 3.0
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5)
Ну вот и ответ :)
Вы создали новую базу, в которой нет данных
Перед выполнением вашего кода, добавьте заглушку:
Хотя наверное не спасет это вас, т.к. весь код у вас корявый... =\
создал чистую конфу для тестов
Ну вот и ответ :)
Вы создали новую базу, в которой нет данных
Перед выполнением вашего кода, добавьте заглушку:
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
Хотя наверное не спасет это вас, т.к. весь код у вас корявый... =\
А зачем обращаться в процедуре ПриЗаписи к какой-то там текущей строке на форме, когда можно постучаться к Объекту?
Источники = Объект.ТЧ.Выгрузить().ВыгрузитьКолонку("Источник");
Запрос.Текст =
"ВЫБРАТЬ
|ДокументСмета.Ссылка
|ИЗ
|Документ.Смета КАК ДокументСмета
ГДЕ
| ДокументСмета.Проведен
| И ДокументСмета.Утвержден
| И ДокументСмета.Ссылка в (&Источники)";
Запрос.УстановитьПараметр("Источники", Источники);
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда// документы есть
Показать
Не работает ничего, решил посмотреть что передаётся из реквизита тч
И при записи дока выводиться "Массив" а хотя я ожидал увидеть "Смета 00000000017 от 16.01.2017 12:00:00"...Может по этому не работает сравнение с тем что выбрал пользователь в реквизите тч с результатом запроса?
П.С. Прочитал в синтаксисе-помощнике что возвращаемое значение "Массив". Тогда вопрос всё равно в силе:Может по этому не работает сравнение с тем что выбрал пользователь в реквизите тч с результатом запроса?
П.С. Передал массив в ТЗ(Создал программно), теперь выводиться как я хотел : "Смета 00000000017 от 16.01.2017 12:00:00". Вопрос: можно ли сравнить значение ТЗ с результатом запроса и если такое значение есть в результате то выполнить определённые действия
Функция Сметы()
Источники = ЭтотОбъект.ТЧ.Выгрузить().ВыгрузитьКолонку("Источник");
Сообщить(Источники );
КонецФункции
Процедура ПриЗаписи(Отказ)
Сметы();
КонецПроцедуры
ПоказатьИ при записи дока выводиться "Массив" а хотя я ожидал увидеть "Смета 00000000017 от 16.01.2017 12:00:00"...Может по этому не работает сравнение с тем что выбрал пользователь в реквизите тч с результатом запроса?
П.С. Прочитал в синтаксисе-помощнике что возвращаемое значение "Массив". Тогда вопрос всё равно в силе:Может по этому не работает сравнение с тем что выбрал пользователь в реквизите тч с результатом запроса?
П.С. Передал массив в ТЗ(Создал программно), теперь выводиться как я хотел : "Смета 00000000017 от 16.01.2017 12:00:00". Вопрос: можно ли сравнить значение ТЗ с результатом запроса и если такое значение есть в результате то выполнить определённые действия
У массива есть метод "найти" в качестве параметра передаётся искомое значение если какой-либо элемент массива содержит искомое значение будет возвращён этот элемент если нет , то вернётся Неопределено У ТЗ есть методы НайтиСтроки действует так же как и Найти у массива , но передаются 2 параметра имя колонки в которой осуществляется поиск и искомое значение
У Вас возвращает "Неопределено" когда пользователь не выбрал текущую строку, хотя и курсор спозиционарован на первую строку.
Вам люди правильно советуют поставить заглушку на тот случай когда не выбрано.
Если у Вас многострочный выбор, тогда тут совершенно другая функция выборки через "ВыделенныеСтроки" а не "ТекущаяСтрока".
Вам люди правильно советуют поставить заглушку на тот случай когда не выбрано.
Если у Вас многострочный выбор, тогда тут совершенно другая функция выборки через "ВыделенныеСтроки" а не "ТекущаяСтрока".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот