Платформа 1С 8.3. Конфигурация - самописная.
Доброе время суток коллеги!
Завис на следующем вопросе. Есть регистр сведений "ПлатежиПоКоду": Измерения - Договор; Ресурсы - КодПлатежа и СуммаПлатежа. В документе, который будет делать запись в этом регистре, в "ОбработкеПроведения" пишу следующий код:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПлатежиПоКодуСрезПоследних.КодПлатежа
|ИЗ
| РегистрСведений.ПлатежиПоКоду.СрезПоследних КАК ПлатежиПоКодуСрезПоследних
|ГДЕ
| ПлатежиПоКодуСрезПоследних.Договор = &Договор";
Запрос.УстановитьПараметр("Договор", Договор);
Запрос = Запрос.Выполнить().Выбрать();
Если Запрос.Количество() = 0 Тогда
КодПлатежа = 1;
Иначе
КодПлатежа = Запрос.КодПлатежа + 1;
КонецЕсли;
Движения.ПлатежиПоКоду.Записывать = Истина;
Движение = Движения.ПлатежиПоКоду.Добавить();
Движение.Период = Дата;
Движение.Договор = Договор;
Движение.СуммаПлатежа = Сумма;
Движение.КодПлатежа = КодПлатежа;
Что находится в переменной Запрос.КодПлатежа ? Похоже, что NULL. Попробуйте запрос написать так:
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(ПлатежиПоКодуСрезПоследних.КодПлатежа, 0) КАК КодПлатежа
|ИЗ
| РегистрСведений.ПлатежиПоКоду.СрезПоследних КАК ПлатежиПоКодуСрезПоследних
|ГДЕ
| ПлатежиПоКодуСрезПоследних.Договор = &Договор";
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(ПлатежиПоКодуСрезПоследних.КодПлатежа, 0) КАК КодПлатежа
|ИЗ
| РегистрСведений.ПлатежиПоКоду.СрезПоследних КАК ПлатежиПоКодуСрезПоследних
|ГДЕ
| ПлатежиПоКодуСрезПоследних.Договор = &Договор";
Перед блоком
Если Запрос.Количество() = 0 Тогда
КодПлатежа = 0;
Увы, без изменений...
посмотрите тип Запрос.КодПлатежа , который получаете из запроса, мне кажется строка.
После ИНаче :
Выборка.Получить; Выборка.Следующий.
Вы пытаетесь получить данные без позиционирования...
// Запрос = Запрос.Выполнить().Выбрать();
Запрос = Запрос.Выполнить().Выгрузить();
Если Запрос.Количество() = 0 Тогда
КодПлатежа = 1;
Иначе
КодПлатежа = Запрос[0].КодПлатежа + 1;
КонецЕсли;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua