|
8.х Изменение документа | ☑ | ||
---|---|---|---|---|
0
ivorotnikov
02.03.16
✎
08:45
|
Добрый день! пытаюсь освоить способ изменения документа по
нажатию кнопки в другом документе, не выходит. Хочу этой процедурой найти именно один документ, с маршрутом "Зарплата", ФИО, и датами в пределах ДатаНачала и ДатаОкончания. И в этом документе изменить реквизит ПримечаниеДТ. Этот документ есть. ВодительФИО = "Белоус Александр Борисович"; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НашаТехника.Ссылка |ИЗ | Документ.НашаТехника КАК НашаТехника |ГДЕ | НашаТехника.МаршрутВидРаботы = &Маршрут | И НашаТехника.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | И НашаТехника.Водитель = &ВодительФИО"; Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(НачалоПериода)); Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ОкончаниеПериода)); Запрос.УстановитьПараметр("Маршрут", "Зарплата"); Запрос.УстановитьПараметр("ВодительФИО", ВодительФИО); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); СсылкаНаЛюбойДокумент = Документы.НашаТехника.ПустаяСсылка(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СсылкаНаЛюбойДокумент = ВыборкаДетальныеЗаписи.Ссылка; КонецЦикла; ОбъектДокумента = СсылкаНаЛюбойДокумент.ПолучитьОбъект(); ОбъектДокумента.ПримечаниеДТ = "Документ изменен."; ОбъектДокумента.Записать(); Выдает "Элемент не выбран" на третьей с низу строке. |
|||
1
capllary_
surgut 02.03.16
✎
08:51
|
(0) Есть такой замечательный инструмент, называется Отладчик.
|
|||
2
lubitelxml
02.03.16
✎
08:51
|
запрос не вернул ни одной записи
|
|||
3
Dmitrii
гуру
02.03.16
✎
08:51
|
(0) ВыборкаДетальныеЗаписи.Следующий() возвращает ЛОЖЬ. Условие не выполняется, цикл не делает ни одной итерации, СсылкаНаЛюбойДокумент - пустая ссылка, ПолучитьОбъект от пустой ссылки выдаёт ошибку.
Всё логично. Думай, почему выборка пустая. Предположу, что реквизит Водитель в документе - это не строка. А ты в условии сравниваешь его со строкой "Белоус Александр Борисович" |
|||
4
Metman
02.03.16
✎
08:55
|
Запрос.УстановитьПараметр("Маршрут", "Зарплата");
Занятно... |
|||
5
Metman
02.03.16
✎
08:58
|
В (3) верно по водителю сказал. Тогда сделай Справочники.Водители.НайтиПоНаименованию("Белоус Александр Борисович")
|
|||
6
ivorotnikov
02.03.16
✎
09:11
|
Большое спасибо! Действительно, не корректно искал данные в запросе. Поправил, теперь все работает!
Процедура КнопкаСоздатьДокументыЗарплатаНажатие(Элемент) // Вставить содержимое обработчика. ВодительФИО = "Белоус Александр Борисович"; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НашаТехника.Ссылка |ИЗ | Документ.НашаТехника КАК НашаТехника |ГДЕ | НашаТехника.МаршрутВидРаботы.Наименование = &Маршрут | И НашаТехника.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | И НашаТехника.Водитель.Наименование = &ВодительФИО"; Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(НачалоПериода)); Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ОкончаниеПериода)); Запрос.УстановитьПараметр("Маршрут", "Зарплата"); Запрос.УстановитьПараметр("ВодительФИО", ВодительФИО); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); СсылкаНаЛюбойДокумент = Документы.НашаТехника.ПустаяСсылка(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СсылкаНаЛюбойДокумент = ВыборкаДетальныеЗаписи.Ссылка; КонецЦикла; ОбъектДокумента = СсылкаНаЛюбойДокумент.ПолучитьОбъект(); ОбъектДокумента.ПримечаниеДТ = "Документ изменен."; ОбъектДокумента.Записать(); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |