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

Помогите пжл с кодом в запросе

Автор Алексей_1985_06, 05 мар 2020, 20:25

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

Алексей_1985_06

Ребят подскажите начинающему, что не так делаю.. В модуле формы написал код (ниже), мне необходимо в реквизит "ДокладПредставил" (тип: строка) документа, передать значение из другого документа "ОперативныеДежурные" с ТЧ "ГрафикДежурства" с условием что дата заступления на дежурство, совпадает с текущей датой, ошибок нет, но данные в реквизит не передаются... помогите справиться с данным вопросом!
&НаСервере
Процедура ЗаполнитьДежурного()

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОперативныеДежурные.ГрафикДежурства.(
| ФамилияИмяОтчество КАК ФамилияИмяОтчество
| )
| ИЗ
| Документ.ОперативныеДежурные КАК ОперативныеДежурные
| ГДЕ
| ОперативныеДежурные.ГрафикДежурства.ДатаЗаступления = &ДатаЗаступления";
Запрос.УстановитьПараметр("ДатаЗаступления",Объект.Сегодня);

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() цикл
Объект.ДокладПредставил = Выборка;
КонецЦикла;
КонецПроцедуры

alexandr_ll

Цитата: Алексей_1985_06 от 05 мар 2020, 20:25
Ребят подскажите начинающему, что не так делаю.. В модуле формы написал код (ниже), мне необходимо в реквизит "ДокладПредставил" (тип: строка) документа, передать значение из другого документа "ОперативныеДежурные" с ТЧ "ГрафикДежурства" с условием что дата заступления на дежурство, совпадает с текущей датой, ошибок нет, но данные в реквизит не передаются... помогите справиться с данным вопросом!
&НаСервере
Процедура ЗаполнитьДежурного()

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОперативныеДежурные.ГрафикДежурства.(
| ФамилияИмяОтчество КАК ФамилияИмяОтчество
| )
| ИЗ
| Документ.ОперативныеДежурные КАК ОперативныеДежурные
| ГДЕ
| ОперативныеДежурные.ГрафикДежурства.ДатаЗаступления = &ДатаЗаступления";
Запрос.УстановитьПараметр("ДатаЗаступления",Объект.Сегодня);

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() цикл
Объект.ДокладПредставил = Выборка;
КонецЦикла;
КонецПроцедуры

Дата в 1С задается с точностью до секунды, поэтому текущая дата может не совпадать с датой документа. Используйте интервал
| ГДЕ
| (ОперативныеДежурные.ГрафикДежурства.ДатаЗаступления > &ДатаЗаступленияНач) и (ОперативныеДежурные.ГрафикДежурства.ДатаЗаступления < &ДатаЗаступленияКон)";
Запрос.УстановитьПараметр("ДатаЗаступленияНач",НачалоДня(Объект.Сегодня));
Запрос.УстановитьПараметр("ДатаЗаступленияКон",КонецДняДня(Объект.Сегодня));


wise

(0) у Вас НЕ совпадение типов: {Объект.ДокладПредставил = Выборка}
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Алексей_1985_06

Цитата: wise от 06 мар 2020, 09:23
(0) у Вас НЕ совпадение типов: {Объект.ДокладПредставил = Выборка}

wise Подскажите пожалуйста что это значит? А главное как исправить это?
Сейчас код такой, но ничего не получается.... В реквизит "ДокладПредставил" - не записывается ФИО из ТЧ (во вложении)

&НаСервере
Процедура ЗаполнитьДежурного()

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОперативныеДежурные.ГрафикДежурства.(
| ФамилияИмяОтчество КАК ФамилияИмяОтчество
| )
| ИЗ
| Документ.ОперативныеДежурные КАК ОперативныеДежурные
| ГДЕ
| (ОперативныеДежурные.ГрафикДежурства.ДатаЗаступления > &ДатаЗаступленияНач) и (ОперативныеДежурные.ГрафикДежурства.ДатаЗаступления < &ДатаЗаступленияКон)";
Запрос.УстановитьПараметр("ДатаЗаступленияНач",НачалоДня(Объект.Сегодня));
Запрос.УстановитьПараметр("ДатаЗаступленияКон",КонецДня(Объект.Сегодня));

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();
Пока Выборка.Следующий() цикл
Объект.ДокладПредставил = Выборка;
КонецЦикла;
КонецПроцедуры


Помогите пожалуйста до ума довести !!!

Теги:

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

Рейтинг@Mail.ru

Поиск