Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Конфигурацию не смотрел, у вас тогда подход не правильный. Я бы загрузил всю таблицу в запрос, сделал рассчет, а потом выгрузил обратно в документ, это быстрее и меньше кода писать.
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 0 раз
Рейтинг: 0
Вот так?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладнаяПереченьТМЦ.ТМЦ, | РасходнаяНакладнаяПереченьТМЦ.Цена, | РасходнаяНакладнаяПереченьТМЦ.Количество, | РасходнаяНакладнаяПереченьТМЦ.Сумма |ПОМЕСТИТЬ ТЧ |ИЗ | Документ.РасходнаяНакладная.ПереченьТМЦ КАК РасходнаяНакладнаяПереченьТМЦ |ГДЕ | РасходнаяНакладнаяПереченьТМЦ.Ссылка = &Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТМЦОстатки.ТМЦ, | ЕСТЬNULL(ТМЦОстатки.СуммаОстаток, 0) / ТМЦОстатки.КоличествоОстаток КАК УчетнаяЦена, | ТМЦОстатки.Склад |ПОМЕСТИТЬ Остатки |ИЗ | РегистрНакопления.ТМЦ.Остатки( | &Период, | ТМЦ В | (ВЫБРАТЬ | ТЧ.ТМЦ | ИЗ | ТЧ КАК ТЧ)) КАК ТМЦОстатки |ГДЕ | ТМЦОстатки.Склад.Ссылка = &Склад |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТЧ.ТМЦ, | ТЧ.Цена, | ТЧ.Количество, | ТЧ.Сумма, | Остатки.УчетнаяЦена, | Остатки.УчетнаяЦена * ТЧ.Количество КАК УчетнаяСумма |ИЗ | ТЧ КАК ТЧ | ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки | ПО ТЧ.ТМЦ = Остатки.ТМЦ"; Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("Период", Дата);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда ПереченьТМЦ.Загрузить(РезультатЗапроса.Выгрузить()); Иначе Сообщить("Не найдены данные для расчета учетной цены"); КонецЕсли;
Ну это я уже делал, парень у которого я взял задания, сказал что лучше тем способом, который я привел выше...
Ошибка при выполнении обработчика - 'ПередЗаписью' по причине: {Документ.РасходнаяНакладная.МодульОбъекта(23)}: Поле объекта не обнаружено (ПереченьТМЦ) Документы.РасходнаяНакладная.ПереченьТМЦ.Загрузить(Запрос.Выполнить().Выгрузить());
Да я так делал, ничего не выгружало, через отладчик посмотрел, было написано "Поле объекта не обнаружено "Загрузить"
Как бы с изначальной задачей я справился уже, которую делал через свой первый запрос. Хотел бы выяснить почему оно не выгружало и искало поле объекта "Загрузить"?)
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!