Помогите Новичку

1. user2085026 03.05.24 13:38 Сейчас в теме
Мой первый Запрос, подскажите что не так!

Процедура ОбработкаПроведения(Отказ, Режим) 
						
				
			Движения.ОстаткиМатериалов.Записывать = Истина;
			Движения.СтоимостьМатериалов.Записывать = Истина;
			Движения.Продажи.Записывать = Истина;
			
МенеджерВТ = Новый МенеджерВременныхТаблиц;	

Запрос = Новый Запрос;
Запрос.Текст = 
		"ВЫБРАТЬ       
				|ОстаткиМатериалов.количество КАК ОстаткиМатериалов 
		|ИЗ
			|РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериалов;	
		|Выбрать
			|СтоимостьМатериалов.Стоимость КАК Стоимость 
		|ИЗ   
			|РегистрНакопления.СтоимостьМатериалов.Остатки КАК СтоимостьМатериаловОстатки";


	Запрос.УстановитьПараметр("Ссылка", Ссылка); 
                 
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	    
	ТЗ = Запрос.Выполнить().Выгрузить();
			
	Движения.ОстаткиМатериалов.Загрузить(ТЗ); // вставить верный параметр типа РезультатЗапроса[1].Выгрузить() или какой-то другой
	Движения.СтоимостьМатериалов.Загрузить(ТЗ); // вставить верный параметр типа РезультатЗапроса[1].Выгрузить() или какой-то другой
	Движения.Продажи.Загрузить(ТЗ); // вставить верный параметр типа РезультатЗапроса[1].Выгрузить() или какой-то другой


КонецПроцедуры;
Показать



задание в комментариях в движениям, да и вообще не работает запрос, что не так
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 03.05.24 13:47 Сейчас в теме
(1)
подскажите что не так!

Все не так :)
Еще раз перечитайте теорию по виртуальной таблице остатки и внесите нужные исправления.
4. lefthander 03.05.24 14:27 Сейчас в теме
(1)А зачем Вам запрос из контекста документа. У Вас есть табличная часть с товарами Вот ее и пишите в регистр. А Вы в параметре указываете ссылку на документ который проводите и товаров на остатках еще нет... ;)
3. FUXEARA 03.05.24 13:55 Сейчас в теме
Может нечто подобное ожидается
"    "ВЫБРАТЬ
 |	ТоварыОрганизацийОстатки.КоличествоОстаток КАК Количество,
 |	СебестоимостьТоваровОстатки.СтоимостьОстаток КАК СтоимостьВсего,
 |	СебестоимостьТоваровОстатки.СтоимостьОстаток / ТоварыОрганизацийОстатки.КоличествоОстаток КАК СебестоимостьЕд
 |ИЗ
 |	РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
 |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.Остатки КАК СебестоимостьТоваровОстатки
 |		ПО ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры = СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры"
5. user2085026 03.05.24 14:49 Сейчас в теме
(3)
"ВЫБРАТЬ
| ТоварыОрганизацийОстатки.КоличествоОстаток КАК Количество,
| СебестоимостьТоваровОстатки.СтоимостьОстаток КАК СтоимостьВсего,
| СебестоимостьТоваровОстатки.СтоимостьОстаток / ТоварыОрганизацийОстатки.КоличествоОстаток КАК СебестоимостьЕд
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.Остатки КАК СебестоимостьТоваровОстатки
| ПО ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры = СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры"
Прикрепленные файлы:
6. user2085026 03.05.24 14:52 Сейчас в теме
че то все равно нет
Прикрепленные файлы:
7. FUXEARA 03.05.24 15:08 Сейчас в теме
(6) если вы хотите внести записи в эти регистры:
Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.СтоимостьМатериалов.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
То сначала их внесите циклом, поочередно в каждый, а не сразу в три.
Потом когда получится их вносить циклом и ошибок не будет, автоматизируйте вариант с загрузить.
Так вы не отследите свои ошибки. Я вам направление мыслей дал, а не готовое решение.
10. user2085026 03.05.24 15:12 Сейчас в теме
циклом все работало, задание в том то и есть, избавиться от циклов
11. lefthander 03.05.24 15:13 Сейчас в теме
(10)Вы запросы пишите в блокноте или в конструкторе запросов?
8. lefthander 03.05.24 15:10 Сейчас в теме
(6)А запрос слабо показать?
9. user2085026 03.05.24 15:11 Сейчас в теме
"ВЫБРАТЬ
		| ОстаткиМатериаловОстатки.КоличествоОстаток КАК Количество,
		| СтоимостьМатериаловОстатки.СтоимостьМатериалов КАК Стоимость,
		| ОстаткиМатериаловКоличество.ОстаткиМатериалов * СтоимостьМатериаловОстатки.СтоимостьМатериалов КАК Продажи
|ИЗ
		| РегистрыНакопления.ОстаткиМатериаловОстатки КАК ОстаткиМатериаловОстатки
		| ЛЕВОЕ СОЕДИНЕНИЕ РегистрыНакопления.СтоимостьМатериалов.Остатки КАК СтоимостьМатериаловКоличество
		| ПО ОстаткиМатериаловКоличество.Продажи = СтоимостьТОваровОстатки.Продажи";
12. user2085026 03.05.24 15:17 Сейчас в теме
циклы конструктором, а движением руками пытаюсь
13. FUXEARA 03.05.24 15:23 Сейчас в теме
(12)правильно ли я понимаю, что ты хочешь по данным ТЧ документа, загрузить движения в эти регистры,
а именно
1)в регистр продажи продажу трансформатора, т.е. движение приход
2)в регистр ОстаткиМатериалов движение расход
3)в регситр СтоимостьМатериалов движение расход?
14. user2085026 03.05.24 15:31 Сейчас в теме
продажи я еще сам толком не знаю что должны делать, уточнить не у кого, да и без них не работает....
16. FUXEARA 03.05.24 15:39 Сейчас в теме
(14)скинь работающий запрос с циклами, чтоб вообще понять ,что там у тебя.
Ты не сможешь ничего загрузить в регистры, если ты не указываешь вид движения, потом, должны совпадать измерения и ресурсы, а мне думается они не совпадают, в едином запросе для всех трех регистров.
18. user2085026 03.05.24 17:18 Сейчас в теме
Процедура ОбработкаПроведения(Отказ, Режим) 
						

	
						
			Движения.ОстаткиМатериалов.Записывать = Истина;
			Движения.СтоимостьМатериалов.Записывать = Истина;
			Движения.Продажи.Записывать = Истина;
			
МенеджерВТ = Новый МенеджерВременныхТаблиц;	

Запрос = Новый Запрос;

Запрос.МенеджерВременныхТаблиц = МенеджерВТ ;

Запрос.Текст =
   "ВЫБРАТЬ
				| ОказаниеУслугиПереченьНоменклатуры.Номенклатура КАК Номенклатура,
				| ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК
				| ВидНоменклатуры,
				| СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) КАК
				| КоличествоВДокументе,
				| СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе 
		
		|ИЗ
				| Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК
				| ОказаниеУслугиПереченьНоменклатуры
		|ГДЕ
				| ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
				|
		|СГРУППИРОВАТЬ ПО
				| ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
				| ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры";        


Запрос.УстановитьПараметр("Ссылка", Ссылка);   

РезультатЗапроса = Запрос.Выполнить();






Запрос2 = новый запрос;
Запрос.Текст = "

|ВЫБРАТЬ

			|НоменклатураДокумента.Номенклатура КАК Номенклатура,
			|НоменклатураДокумента.ВидНоменклатуры КАК ВидНоменклатуры,
			|НоменклатураДокумента.КоличествоВДокументе КАК КоличествоВДокументе,
			|НоменклатураДокумента.СуммаВДокументе КАК СуммаВДокументе,
			|СтоимостьМатериаловОстатки.СтоимостьОстаток КАК СтоимостьОстаток
			
	|ИЗ
			|НоменклатураДокумента КАК НоменклатураДокумента
	|ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
			|, Материал В
	|(ВЫБРАТЬ
			|НоменклатураДокумента.Номенклатура
	|ИЗ
			|НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
	|ПО НоменклатураДокумента.Номенклатура =|СтоимостьМатериаловОстатки.Материал";


			ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
			Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			Если ВыборкаДетальныеЗаписи.ВидНоменклатуры =
			Перечисления.ВидыНоменклатуры.Материал Тогда  
			
			
// Регистр ОстаткиМатериалов Расход 


			Движение = Движения.ОстаткиМатериалов.Добавить();
			Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
			Движение.Период = Дата;
			Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
			Движение.Склад = Склад;
			Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
// Регистр СтоимостьМатериалов Расход
			Движение = Движения.СтоимостьМатериалов.Добавить();
			Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
			Движение.Период = Дата;
			Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
//		Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе *
//			ВыборкаДетальныеЗаписи.Стоимость;
КонецЕсли;

// Регистр Продажи
			Движение = Движения.Продажи.Добавить();
			Движение.Период = Дата;
			Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
			Движение.Клиент = Клиент;
			Движение.Мастер = Мастер;
			Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
			Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе;
//			Движение.Стоимость = ВыборкаДетальныеЗаписи.Стоимость *
//			ВыборкаДетальныеЗаписи.КоличествоВДокументе; 
						
			
КонецЦикла; 



		
		
		
конецпроцедуры
Показать
19. FUXEARA 03.05.24 18:09 Сейчас в теме
(18)
я конечно такое никогда не городил, но твой запрос, должен выдать все поля которые используются в движениях:

Движение.Склад
Движение.Количество

Движение.ВидДвижения
Движение.Период
Движение.Материал

Движение.Номенклатура
Движение.Клиент
Движение.Мастер
Движение.Выручка

Рекомендую загрузить с начала в первый регистр, без использования менеджера временных таблиц.
Вот как вид движение указывается в запросе - | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
В этот для начала:
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;


Вот тебе работающий запрос с определением остатков
    	Запрос = Новый Запрос;
    	Запрос.Текст = 
    	"ВЫБРАТЬ
    	|	ЗаказРекламныхМетериаловТовары.Номенклатура КАК Номенклатура,
    	|	ЗаказРекламныхМетериаловТовары.Характеристика КАК Характеристика,
    	|	ЗаказРекламныхМетериаловТовары.Серия КАК Серия,
    	|	ЗаказРекламныхМетериаловТовары.Количество КАК Заказано, 
	|	РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
	|   РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток КАК ВРезервеОстаток,
    	|	ВЫБОР                                                                                                   
    	|		КОГДА РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток >= РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток
    	|			ТОГДА ((РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток - РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток) + ЗаказРекламныхМетериаловТовары.Количество)
    	|		ИНАЧЕ (РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток - РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток) 
    	|	КОНЕЦ КАК Доступно,
    	|	ВЫБОР
    	|		КОГДА РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток >= РекламныеМатериалыНаСкладахОстатки.ВРезервеОстаток
    	|			ТОГДА ЗаказРекламныхМетериаловТовары.Количество
    	|		ИНАЧЕ 0
    	|	КОНЕЦ КАК Количество
    	|ИЗ
    	|	Документ.ЗаказРекламныхМетериалов.Товары КАК ЗаказРекламныхМетериаловТовары
    	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РекламныеМатериалыНаСкладах.Остатки(&ДатаОстатка, ) КАК РекламныеМатериалыНаСкладахОстатки
    	|		ПО ЗаказРекламныхМетериаловТовары.Номенклатура = РекламныеМатериалыНаСкладахОстатки.Номенклатура
     	|			И ЗаказРекламныхМетериаловТовары.Характеристика = РекламныеМатериалыНаСкладахОстатки.Характеристика
	|			И ЗаказРекламныхМетериаловТовары.Серия = РекламныеМатериалыНаСкладахОстатки.Серия
	|			И ЗаказРекламныхМетериаловТовары.Ссылка.Склад = РекламныеМатериалыНаСкладахОстатки.Склад
	|ГДЕ
        |	ЗаказРекламныхМетериаловТовары.Ссылка.Проведен = ИСТИНА
        |       И РекламныеМатериалыНаСкладахОстатки.ВНаличииОстаток > 0
	|	И ЗаказРекламныхМетериаловТовары.Ссылка = &ДокументОснование"; 

	    Запрос.УстановитьПараметр("ДокументОснование", Объект.ДокументОснование);
 	    Запрос.УстановитьПараметр("ДатаОстатка",КонецДня(Объект.Дата));
Показать
15. Bukaska 140 03.05.24 15:35 Сейчас в теме
Вы на Сервере да еще с Таблицей значений работаете?
А Вам на курсе ничего такого не говорили, Почему ТЗ лучше не выгружать? Вы же вешаете систему.
ТЗ хорошо использовать только в локальных переменных при отладке, чтоб видеть объем данных.
Когда у вас записей пара тройка строк, оно не имеет значения, но если вы это сделаете на базе с большим объемом данных, то этой базе можно прописать конец света)
17. user2085026 03.05.24 16:27 Сейчас в теме
да я не демонстрационной версии
кто б мне доверил сервак то)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот