|
не могу найти ошибку в листинге по книге Радченко | ☑ | ||
---|---|---|---|---|
0
mikkijon
06.10.19
✎
18:01
|
Здравствуйте многоуважаемые форумчане!!!
Помогите пожалуйста новичку. Изучаю "1С Предприятия" версии "8.3". И застрял на 14 занятии. А именно оптимизации документа "Оказание услуги". Там нужно было составить запрос с временной таблицей, листинг ниже. Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр ОстаткиМатериалов Расход Движения.ОстаткиМатериалов.Записывать=Истина; Движения.СтоимостьМатериалов.Записывать=Истина; Движения.Продажи.Записывать=Истина; //Создать менеджер временных таблиц МенеджеВТ = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; //Укажем какой запрос менеджер временных таблиц использует этот запрос Запрос.МенеджерВременныхТаблиц =МенеджеВТ; Запрос.Текст = "ВЫБРАТЬ | ОказаниеУслугиПереченьНомеклатуры.Номенклатура КАК Номенклатура, | ОказаниеУслугиПереченьНомеклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры, | СУММА(ОказаниеУслугиПереченьНомеклатуры.Количество) КАК КоличествоВДокументе |ПОМЕСТИТЬ НоменклатураВДокументе |ИЗ | Документ.ОказаниеУслуги.ПереченьНомеклатуры КАК ОказаниеУслугиПереченьНомеклатуры |ГДЕ | ОказаниеУслугиПереченьНомеклатуры.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | ОказаниеУслугиПереченьНомеклатуры.Номенклатура, | ОказаниеУслугиПереченьНомеклатуры.Номенклатура.ВидНоменклатуры"; Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); Запрос2 = Новый Запрос; Запрос2.МенеджерВременныхТаблиц = МенеджеВТ; Запрос2.Текст = "ВЫБРАТЬ | НоменклатураВДокументе.Номенклатура КАК Номенклатура, | НоменклатураВДокументе.ВидНоменклатуры КАК ВидНоменклатуры, | НоменклатураВДокументе.КоличествоВДокументе КАК КоличествоВДокументе, | ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость, | ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество, | НоменклатураВДокументе.Сумма КАК Сумма |ИЗ | НоменклатураВДокументе КАК НоменклатураВДокументе | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки( | , | Материал В | (ВЫБРАТЬ | НоменклатураВДокументе.Номенклатура | ИЗ | НоменклатураВДокументе)) КАК СтоимостьМатериаловОстатки | ПО НоменклатураВДокументе.Номенклатура = СтоимостьМатериаловОстатки.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки( | , | Материалы В | (ВЫБРАТЬ | НоменклатураВДокументе.Номенклатура | ИЗ | НоменклатураВДокументе)) КАК ОстаткиМатериаловОстатки | ПО НоменклатураВДокументе.Номенклатура = ОстаткиМатериаловОстатки.Материалы"; //Запишаем пустые наборы записей. чтобы читать остатки без учета данных в документе Движения.СтоимостьМатериалов.Записать(); Движения.ОстаткиМатериалов.Записать(); РезультатЗапроса = Запрос2.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда СтоимостьМатериала = 0; Иначе СтоимостьМатериала = ВыборкаДетальныеЗаписи.Стоимость/ВыборкаДетальныеЗаписи.Количество; КонецЕсли; Если ВыборкаДетальныеЗаписи.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материалы = ВыборкаДетальныеЗаписи.Номенклатура; Движение.Склад = Склад; Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе; //Регистр СтоимостьМатериалов.расход Движение = Движения.СтоимостьМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура; Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе*ВыборкаДетальныеЗаписи.СтоимостьМатериала; //Движение по Регистру Продажи КонецЕсли; Движение = Движения.Продажи.Добавить(); Движение.Период = Дата; Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; Движение.Клиент = Клиент; Движение.Мастер = Сотрудники; Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе; Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе; Движение.Стоимость =СтоимостьМатериала*ВыборкаДетальныеЗаписи.КоличествоВДокументе; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Она мне постоянно пишет что поле "Сумма не найдено". Я уже не знаю куда смотреть и что еще можно проверить вроде у меня все правильно как сказано в Книге Радченко ..... Подскажите пожалуйста что я не правильно делаю Заранее благодарю!!! |
|||
1
Mankubus
06.10.19
✎
18:08
|
здесь создается таблица НоменклатураВДокументе с полями Номенклатура, ВидНоменклатуры, КоличествоВДокументе
здесь из таблицы НоменклатураВДокументе выбираются поля Номенклатура, ВидНоменклатуры, КоличествоВДокументе и Сумма с чего вдруг выбирается поле Сумма если такое поля не помещалось в таблицу НоменклатураВДокументе ? |
|||
2
mikkijon
06.10.19
✎
18:16
|
Не понял вашего вопроса
В смысле не помещалось? |
|||
3
ДенисЧ
06.10.19
✎
18:19
|
(2) в запросе, создающем НоменклатураВДокументе - нет поля выбора суммы.
|
|||
4
mikkijon
06.10.19
✎
18:25
|
Опишите пожалуйста по подробнее.
Я просто не понимаю что значит "Нет поля Суммы" Я все делал как указано в книге Радченко. Но только там было указано "СуммаВДокументе". |
|||
5
hhhh
06.10.19
✎
18:32
|
(4) вот здесь у вас нет поля сумма.
Запрос.Текст = "ВЫБРАТЬ | ОказаниеУслугиПереченьНомеклатуры.Номенклатура КАК Номенклатура, | ОказаниеУслугиПереченьНомеклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры, | СУММА(ОказаниеУслугиПереченьНомеклатуры.Количество) КАК КоличествоВДокументе |ПОМЕСТИТЬ НоменклатураВДокументе |ИЗ | Документ.ОказаниеУслуги.ПереченьНомеклатуры КАК ОказаниеУслугиПереченьНомеклатуры |ГДЕ | ОказаниеУслугиПереченьНомеклатуры.Ссылка = &Ссылка а здесь | НоменклатураВДокументе.Сумма КАК Сумма вы пишете Сумма. Поле которого нет. |
|||
6
shuhard
06.10.19
✎
19:06
|
(2)[Я все делал как указано в книге Радченко]
у него есть свой форум для коллег по несчастью http://devtrainingforum.v8.1c.ru/forum/ |
|||
7
Надо работать
06.10.19
✎
19:09
|
(0) ошибки в листинге - это хорошо, пока найдешь и исправишь - разберёшься как оно все работает
А так скопировал, компильнул и забыл сразу ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |