Мой первый Запрос, подскажите что не так!
задание в комментариях в движениям, да и вообще не работает запрос, что не так
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.СтоимостьМатериалов.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
МенеджерВТ = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|ОстаткиМатериалов.количество КАК ОстаткиМатериалов
|ИЗ
|РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериалов;
|Выбрать
|СтоимостьМатериалов.Стоимость КАК Стоимость
|ИЗ
|РегистрНакопления.СтоимостьМатериалов.Остатки КАК СтоимостьМатериаловОстатки";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ТЗ = Запрос.Выполнить().Выгрузить();
Движения.ОстаткиМатериалов.Загрузить(ТЗ); // вставить верный параметр типа РезультатЗапроса[1].Выгрузить() или какой-то другой
Движения.СтоимостьМатериалов.Загрузить(ТЗ); // вставить верный параметр типа РезультатЗапроса[1].Выгрузить() или какой-то другой
Движения.Продажи.Загрузить(ТЗ); // вставить верный параметр типа РезультатЗапроса[1].Выгрузить() или какой-то другой
КонецПроцедуры;
Показатьзадание в комментариях в движениям, да и вообще не работает запрос, что не так
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Может нечто подобное ожидается
" "ВЫБРАТЬ
| ТоварыОрганизацийОстатки.КоличествоОстаток КАК Количество,
| СебестоимостьТоваровОстатки.СтоимостьОстаток КАК СтоимостьВсего,
| СебестоимостьТоваровОстатки.СтоимостьОстаток / ТоварыОрганизацийОстатки.КоличествоОстаток КАК СебестоимостьЕд
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.Остатки КАК СебестоимостьТоваровОстатки
| ПО ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры = СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры"
(3)
"ВЫБРАТЬ
| ТоварыОрганизацийОстатки.КоличествоОстаток КАК Количество,
| СебестоимостьТоваровОстатки.СтоимостьОстаток КАК СтоимостьВсего,
| СебестоимостьТоваровОстатки.СтоимостьОстаток / ТоварыОрганизацийОстатки.КоличествоОстаток КАК СебестоимостьЕд
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.Остатки КАК СебестоимостьТоваровОстатки
| ПО ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры = СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры"
| ТоварыОрганизацийОстатки.КоличествоОстаток КАК Количество,
| СебестоимостьТоваровОстатки.СтоимостьОстаток КАК СтоимостьВсего,
| СебестоимостьТоваровОстатки.СтоимостьОстаток / ТоварыОрганизацийОстатки.КоличествоОстаток КАК СебестоимостьЕд
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.Остатки КАК СебестоимостьТоваровОстатки
| ПО ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры = СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры"
Прикрепленные файлы:
(6) если вы хотите внести записи в эти регистры:
Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.СтоимостьМатериалов.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
То сначала их внесите циклом, поочередно в каждый, а не сразу в три.
Потом когда получится их вносить циклом и ошибок не будет, автоматизируйте вариант с загрузить.
Так вы не отследите свои ошибки. Я вам направление мыслей дал, а не готовое решение.
Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.СтоимостьМатериалов.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
То сначала их внесите циклом, поочередно в каждый, а не сразу в три.
Потом когда получится их вносить циклом и ошибок не будет, автоматизируйте вариант с загрузить.
Так вы не отследите свои ошибки. Я вам направление мыслей дал, а не готовое решение.
"ВЫБРАТЬ
| ОстаткиМатериаловОстатки.КоличествоОстаток КАК Количество,
| СтоимостьМатериаловОстатки.СтоимостьМатериалов КАК Стоимость,
| ОстаткиМатериаловКоличество.ОстаткиМатериалов * СтоимостьМатериаловОстатки.СтоимостьМатериалов КАК Продажи
|ИЗ
| РегистрыНакопления.ОстаткиМатериаловОстатки КАК ОстаткиМатериаловОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрыНакопления.СтоимостьМатериалов.Остатки КАК СтоимостьМатериаловКоличество
| ПО ОстаткиМатериаловКоличество.Продажи = СтоимостьТОваровОстатки.Продажи";
(12)правильно ли я понимаю, что ты хочешь по данным ТЧ документа, загрузить движения в эти регистры,
а именно
1)в регистр продажи продажу трансформатора, т.е. движение приход
2)в регистр ОстаткиМатериалов движение расход
3)в регситр СтоимостьМатериалов движение расход?
а именно
1)в регистр продажи продажу трансформатора, т.е. движение приход
2)в регистр ОстаткиМатериалов движение расход
3)в регситр СтоимостьМатериалов движение расход?
(14)скинь работающий запрос с циклами, чтоб вообще понять ,что там у тебя.
Ты не сможешь ничего загрузить в регистры, если ты не указываешь вид движения, потом, должны совпадать измерения и ресурсы, а мне думается они не совпадают, в едином запросе для всех трех регистров.
Ты не сможешь ничего загрузить в регистры, если ты не указываешь вид движения, потом, должны совпадать измерения и ресурсы, а мне думается они не совпадают, в едином запросе для всех трех регистров.
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.СтоимостьМатериалов.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
МенеджерВТ = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВТ ;
Запрос.Текст =
"ВЫБРАТЬ
| ОказаниеУслугиПереченьНоменклатуры.Номенклатура КАК Номенклатура,
| ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК
| ВидНоменклатуры,
| СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) КАК
| КоличествоВДокументе,
| СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе
|ИЗ
| Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК
| ОказаниеУслугиПереченьНоменклатуры
|ГДЕ
| ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
| ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Запрос2 = новый запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|НоменклатураДокумента.Номенклатура КАК Номенклатура,
|НоменклатураДокумента.ВидНоменклатуры КАК ВидНоменклатуры,
|НоменклатураДокумента.КоличествоВДокументе КАК КоличествоВДокументе,
|НоменклатураДокумента.СуммаВДокументе КАК СуммаВДокументе,
|СтоимостьМатериаловОстатки.СтоимостьОстаток КАК СтоимостьОстаток
|ИЗ
|НоменклатураДокумента КАК НоменклатураДокумента
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
|, Материал В
|(ВЫБРАТЬ
|НоменклатураДокумента.Номенклатура
|ИЗ
|НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
|ПО НоменклатураДокумента.Номенклатура =|СтоимостьМатериаловОстатки.Материал";
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.ВидНоменклатуры =
Перечисления.ВидыНоменклатуры.Материал Тогда
// Регистр ОстаткиМатериалов Расход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
// Регистр СтоимостьМатериалов Расход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
// Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе *
// ВыборкаДетальныеЗаписи.Стоимость;
КонецЕсли;
// Регистр Продажи
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Клиент = Клиент;
Движение.Мастер = Мастер;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе;
// Движение.Стоимость = ВыборкаДетальныеЗаписи.Стоимость *
// ВыборкаДетальныеЗаписи.КоличествоВДокументе;
КонецЦикла;
конецпроцедуры
Показать
(18)
я конечно такое никогда не городил, но твой запрос, должен выдать все поля которые используются в движениях:
Движение.Склад
Движение.Количество
Движение.ВидДвижения
Движение.Период
Движение.Материал
Движение.Номенклатура
Движение.Клиент
Движение.Мастер
Движение.Выручка
Рекомендую загрузить с начала в первый регистр, без использования менеджера временных таблиц.
Вот как вид движение указывается в запросе - | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
В этот для начала:
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Вот тебе работающий запрос с определением остатков
я конечно такое никогда не городил, но твой запрос, должен выдать все поля которые используются в движениях:
Движение.Склад
Движение.Количество
Движение.ВидДвижения
Движение.Период
Движение.Материал
Движение.Номенклатура
Движение.Клиент
Движение.Мастер
Движение.Выручка
Рекомендую загрузить с начала в первый регистр, без использования менеджера временных таблиц.
Вот как вид движение указывается в запросе - | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
В этот для начала:
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Вот тебе работающий запрос с определением остатков
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказРекламныхМетериаловТовары.Номенклатура КАК Номенклатура,
| ЗаказРекламныхМетериаловТовары.Характеристика КАК Характеристика,
| ЗаказРекламныхМетериаловТовары.Серия КАК Серия,
| ЗаказРекламныхМетериаловТовары.Количество КАК Заказано,
| РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
| РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток КАК ВРезервеОстаток,
| ВЫБОР
| КОГДА РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток >= РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток
| ТОГДА ((РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток - РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток) + ЗаказРекламныхМетериаловТовары.Количество)
| ИНАЧЕ (РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток - РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток)
| КОНЕЦ КАК Доступно,
| ВЫБОР
| КОГДА РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток >= РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток
| ТОГДА ЗаказРекламныхМетериаловТовары.Количество
| ИНАЧЕ 0
| КОНЕЦ КАК Количество
|ИЗ
| Документ.ЗаказРекламныхМетериалов.Товары КАК ЗаказРекламныхМетериаловТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РекламныеМатериалыНаСкладах.Остатки(&ДатаОстатка, ) КАК РекламныеМатериалыНаСкладахОстатки
| ПО ЗаказРекламныхМетериаловТовары.Номенклатура = РекламныеМатериалыНаСкладахОстатки.Номенклатура
| И ЗаказРекламныхМетериаловТовары.Характеристика = РекламныеМатериалыНаСкладахОстатки.Характеристика
| И ЗаказРекламныхМетериаловТовары.Серия = РекламныеМатериалыНаСкладахОстатки.Серия
| И ЗаказРекламныхМетериаловТовары.Ссылка.Склад = РекламныеМатериалыНаСкладахОстатки.Склад
|ГДЕ
| ЗаказРекламныхМетериаловТовары.Ссылка.Проведен = ИСТИНА
| И РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток > 0
| И ЗаказРекламныхМетериаловТовары.Ссылка = &ДокументОснование";
Запрос.УстановитьПараметр("ДокументОснование", Объект.ДокументОснование);
Запрос.УстановитьПараметр("ДатаОстатка",КонецДня(Объект.Дата));
Показать
Вы на Сервере да еще с Таблицей значений работаете?
А Вам на курсе ничего такого не говорили, Почему ТЗ лучше не выгружать? Вы же вешаете систему.
ТЗ хорошо использовать только в локальных переменных при отладке, чтоб видеть объем данных.
Когда у вас записей пара тройка строк, оно не имеет значения, но если вы это сделаете на базе с большим объемом данных, то этой базе можно прописать конец света)
А Вам на курсе ничего такого не говорили, Почему ТЗ лучше не выгружать? Вы же вешаете систему.
ТЗ хорошо использовать только в локальных переменных при отладке, чтоб видеть объем данных.
Когда у вас записей пара тройка строк, оно не имеет значения, но если вы это сделаете на базе с большим объемом данных, то этой базе можно прописать конец света)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот