|   |   | 
| 
 | не могу найти ошибку в листинге по книге Радченко | ☑ | ||
|---|---|---|---|---|
| 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) ошибки в листинге - это хорошо, пока найдешь и исправишь - разберёшься как оно все работает 
 А так скопировал, компильнул и забыл сразу ) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |