Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Acid @ 27.03.17, 12:56)
Таблицу создавать не нужно. Надо выгрузить результат выполнения запроса в таблицу. Список_Прих = Результат.Выгрузить();
Вот что получилось
Список_Прих = Результат<<?>>.Таб_1.Выгрузить(); {Отчет.новый3.Форма.Модуль(201)}: Переменная не определена (Результат) При проверке модуля обнаружены синтаксические ошибки!
или так
Список_Прих = Результат<<?>>.Выгрузить(); {Отчет.новый3.Форма.Модуль(201)}: Переменная не определена (Результат) При проверке модуля обнаружены синтаксические ошибки!
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Acid @ 27.03.17, 15:25)
Не правильно. Пример есть в Синтакс-Помощнике
Заглянул я в Синтаксис там чорным по белому написано что это <ИдентификаторРегистра> а у меня работа с Документами да и примера там ни какого нету
Вот полный текс кода
//******************************************* // Процедура генерации запроса Сформировать. // Процедура Сформировать() Перем Запрос_1, ТекстЗапроса_1, Таб_1, Список_Прих, НомПрих; //Создание объекта типа Запрос Запрос_1 = СоздатьОбъект("Запрос"); ТекстЗапроса_1 = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |ПриходнаяНакладная = Документ.ПриходнаяНакладная.ТекущийДокумент; |ТМЦ = Документ.ПриходнаяНакладная.ТМЦ; |ПлотностьНа15Град = Документ.ПриходнаяНакладная.ПлотностьНа15Град; |ЛитрОтПлотности = Документ.ПриходнаяНакладная.ЛитрОтПлотности; |Группировка День; |Группировка ПриходнаяНакладная; |Группировка ТМЦ; |Группировка ПлотностьНа15Град; |Группировка ЛитрОтПлотности; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос_1.Выполнить(ТекстЗапроса_1) = 0 Тогда Возврат; КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса Таб_1 = СоздатьОбъект("Таблица"); Список_Прих = СоздатьОбъект("ТаблицаЗначений"); Список_Прих.НоваяКолонка("День", "Дата"); Список_Прих.НоваяКолонка("НомПрихНакл", "Строка"); Список_Прих.НоваяКолонка("ИмяПрихТовара", "Строка"); Список_Прих.НоваяКолонка("ПлотнПрихТовара", "Число"); Список_Прих.НоваяКолонка("ПрихАкцизЛитр", "Число"); НомПрих = 0; Таб_1.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб_1.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб_1.Опции(0, 0, Таб_1.ВысотаТаблицы(), 0); Пока Запрос_1.Группировка(1) = 1 Цикл Сообщить (Запрос_1.День); // результат == 04.01.2017 Пока Запрос_1.Группировка(2) = 1 Цикл Сообщить (Запрос_1.ПриходнаяНакладная); // результат == Прих. накл. ПН-0000001 (04.01.2017) Пока Запрос_1.Группировка(3) = 1 Цикл Сообщить (Запрос_1.ТМЦ); // результат == Паливо дизельне ДТ-Л-К5 сорт С ( УКТЕД 2710194300) Пока Запрос_1.Группировка(4) = 1 Цикл Сообщить (Запрос_1.ПлотностьНа15Град); // результат == 0.7625 Пока Запрос_1.Группировка(5) = 1 Цикл Сообщить (Запрос_1.ЛитрОтПлотности);// результат == 36254 НомПрих = НомПрих + 1; Список_Прих.НоваяСтрока(НомПрих); Список_Прих.День = Запрос_1.День; Список_Прих.НомПрихНакл = Запрос_1.ПриходнаяНакладная; Список_Прих.ИмяПрихТовара = Запрос_1.ТМЦ; Список_Прих.ПлотнПрихТовара = Запрос_1.ПлотностьНа15Град; Список_Прих.ПрихАкцизЛитр = Запрос_1.ЛитрОтПлотности; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла;
// Заполнение строк поля "ПриходныйАКЦЫЗ" Список_Прих.ВыбратьСтроки(); Пока Список_Прих.ПолучитьСтроку() = 1 Цикл Таб_1.ВывестиСекцию("ЛитрОтПлотности"); КонецЦикла;
// Заполнение полей через Список_Прих Список_Прих.ВыбратьСтроки(); Пока Список_Прих.ПолучитьСтроку() = 1 Цикл Сообщить(Шаблон("[Список_Прих.День = Запрос_1.День] х [Список_Прих.НомПрихНаклра] х [Список_Прих.ИмяПрихТовара] х [Список_Прих.ПлотнПрихТовара]"));
КонецЦикла; // получил результат: 04.01.2017 Х 49943 Х 148 219 х 0.7625
// Вывод заполненной формы Таб_1.ТолькоПросмотр(1); Таб_1.Показать("Сформировать", ""); КонецПроцедуры
смысл в том что результат запроса мне надо записать в "Список_Прих" и дальше проводить ряд нонипуляций
leo10k10 @ Сегодня, 16:54
, а я только дату и последние числовые значения нв нормальном виде имею а в остольном бред может это изза строковой переменной
Приятно иметь дело с специолистом который может розобратся в поставленом вопросе и дать дельный совет. Спосибо за Ваше дрогоценное время потраченое на меня и мою проблему, но блогодаря Вам она решена
leo10k10 @ Сегодня, 9:34
, Я дико извеняюсь не хочу наглеть но хочу посоветоватца как лутше теперь перебрать полученый список чтобы просумировать поле "Список_Прих.ПрихАкцизЛитр" относительно одиного и товоже товара наименование когорого в поле "Список_Прих.ИмяПрихТовара" с учетом того что плотность этого товара указаная в поле "Список_Прих.ПлотнПрихТовара" должна быть одинаковой.
Можно было это еще в запросе сделать "Функция СуммаЛитрОтПлотности = Сумма(ЛитрОтПлотности);". Только тогда нужно убрать группировку по ЛитрОтПлотности
leo10k10, можно вопрос: почему вы не воспользовались этим daveal @ Вчера, 14:36
, советом?
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
Можно было это еще в запросе сделать "Функция СуммаЛитрОтПлотности = Сумма(ЛитрОтПлотности);". Только тогда нужно убрать группировку по ЛитрОтПлотности
Может я неправильно выразился или чегото не понимаю но на мой взгляд так не пойдет видь мне не просто сумма нужна. Сечас попробую обяснить на примере: допустим вчера мне на приход пришло два вида топлива ДТ и Бензин95 соотвецтвенно в поле "ИмяПрихТовара" два разных имени и у каждого имени может быть своя плотность указаная в поле "ПлотнПрихТовара" например ДТ было двух видов качества с плотностю 0,785 и 0,825 по сути имеем три строки, сегодня на приход мне прошло еще два вида ДТ с плотностями 0,776 и 0,825 тоесть еще две строчки подбивая итог я должен получить 4 строки и сумма будет лиш по одному виду топлива а именно ДТ с плотностью 0,825.
я пока это все писал думаю может стоит свертку произвести таким образом:
Суммирование в запросе происходит в разрезе объявленных группировок. Если сумма нужна только по плотности и ТМЦ, так и оставьте в запросе только эти группировки.
Группа: Пользователи
Сообщений: 42
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(daveal @ 28.03.17, 15:28)
Суммирование в запросе происходит в разрезе объявленных группировок. Если сумма нужна только по плотности и ТМЦ, так и оставьте в запросе только эти группировки.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!