Создание и заполнения документа на основании нескольких

1. Вожак 19.02.14 17:03 Сейчас в теме
Самописная конфа, такой вопрос: Есть документ - заказ в карьер, в нем реквизиты и ТЧ, на основании этого документа можно сформировать ТТН. В чем собственно вопрос, как сделать заполнение одной ТТН на основании 2х, например заказов в карьер? выделить их шифтом, а как перенести потом данные из 2х тч в одну? сделал обработку для вызова таблицы с списокм выбираемых документов, дошел до запроса, который их потом обрабатывает, и тут летит ошибка:
{Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(60)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(12, 46)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка <<?>>= &Ссылка

вот сам код процедуры:
&НаКлиенте
Процедура Команда1(Команда)
НаСервере();
КонецПроцедуры

&Насервере
Процедура НаСервере()

Массив=новый массив;

Для Каждого Стр из Объект.ЗаказВКарьер Цикл
массив.добавить(Стр);
КонецЦикла;

Запрос=Новый Запрос;
Запрос.Текст= "ВЫБРАТЬ
| ЗаказыКлиентовОстатки.Номенклатура,
| ЗаказыКлиентовОстатки.ЗаказаноОстаток,
| ЗаказыКлиентовОстатки.СуммаОстаток,
| ЗаказыКлиентовОстатки.ЗаказКлиента,
| ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка
|ПОМЕСТИТЬ втОстатки
|ИЗ
| РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
|ГДЕ
| ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0
| И ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка = &Ссылка
|;
|
| X
|ВЫБРАТЬ
| ЗаказВКарьер.Контрагент,
| ЗаказВКарьер.Дата,
| ЗаказВКарьер.Менеджер,
| ЗаказВКарьер.Организация,
| ЗаказВКарьер.Ссылка,
| втОстатки.Номенклатура,
| ЗаказВКарьерТовары.Цена,
| ЗаказВКарьерТовары.СтавкаНДС,
| ЗаказВКарьерТовары.ЕдиницаИзмерения,
| втОстатки.ЗаказаноОстаток,
| втОстатки.СуммаОстаток,
| втОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
| ВЫБОР
| КОГДА втОстатки.ЗаказаноОстаток = 0
| ТОГДА 0
| ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * втОстатки.ЗаказаноОстаток
| КОНЕЦ КАК СуммаНДС
|ИЗ
| втОстатки КАК втОстатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер КАК ЗаказВКарьер
| ПО втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьер.Ссылка
| И втОстатки.Номенклатура = ЗаказВКарьер.Товары.Номенклатура,
| Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
|ГДЕ
| ЗаказВКарьер.Товары.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка",массив);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

ТТН=Документы.ТТН.СоздатьДокумент();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

ТТН.Организация = ВыборкаДетальныеЗаписи.Организация;
ТТН.Дата = ВыборкаДетальныеЗаписи.Дата;
ТТН.Контрагент = ВыборкаДетальныеЗаписи.Контрагент;

НоваяСтрока = ТТН.Товары.Добавить();

Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
Продолжить;
КонецЕсли;

НоваяСтрока.ЕдиницаИзмерения = ВыборкаДетальныеЗаписи.ЕдиницаИзмерения;
НоваяСтрока.Количество = ВыборкаДетальныеЗаписи.Количество;
НоваяСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
НоваяСтрока.СтавкаНДС = ВыборкаДетальныеЗаписи.СтавкаНДС;
НоваяСтрока.Сумма = ВыборкаДетальныеЗаписи.Сумма;
НоваяСтрока.СуммаНДС = ВыборкаДетальныеЗаписи.СуммаНДС;
НоваяСтрока.СуммаСНДС = ВыборкаДетальныеЗаписи.СуммаСНДС;
НоваяСтрока.Цена = ВыборкаДетальныеЗаписи.Цена;
НоваяСтрока.ЗаказВКарьер = ВыборкаДетальныеЗаписи.Ссылка;

КонецЦикла;

ТТН.записать();
ТТн.ПолучитьФорму();
ТТн.открыть();
КонецПроцедуры



Как разобраться с этой ошибкой?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. starjevschik 19.02.14 17:11 Сейчас в теме
(1) Вожак,
ЗаказВКарьер.Товары.Ссылка В(&Ссылка)
а вообще можно ведь и мануал открыть. Стыдно, конечно, но можно незаметно, под столом как-нибудь, отгородившись от коллег
;)
4. Вожак 19.02.14 17:25 Сейчас в теме
(2) starjevschik,
"ВЫБРАТЬ
| ЗаказыКлиентовОстатки.Номенклатура,
| ЗаказыКлиентовОстатки.ЗаказаноОстаток,
| ЗаказыКлиентовОстатки.СуммаОстаток,
| ЗаказыКлиентовОстатки.ЗаказКлиента
|ПОМЕСТИТЬ втЗаказКлиентаОстаток
|ИЗ
| РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
|ГДЕ
| ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка = &Ссылка
| И ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0
|;
|
| X
|ВЫБРАТЬ
| втЗаказКлиентаОстаток.Номенклатура,
| ЗаказВКарьерТовары.Цена,
| ЗаказВКарьерТовары.СтавкаНДС,
| ЗаказВКарьерТовары.ЕдиницаИзмерения,
| ЗаказВКарьерТовары.Ссылка,
| втЗаказКлиентаОстаток.ЗаказаноОстаток КАК Количество,
| втЗаказКлиентаОстаток.СуммаОстаток КАК СуммаСНДС,
| втЗаказКлиентаОстаток.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
| ВЫБОР
| КОГДА втЗаказКлиентаОстаток.ЗаказаноОстаток = 0
| ТОГДА 0
| ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * втЗаказКлиентаОстаток.ЗаказаноОстаток
| КОНЕЦ КАК СуммаНДС
|ИЗ
| втЗаказКлиентаОстаток КАК втЗаказКлиентаОстаток
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
| ПО втЗаказКлиентаОстаток.Номенклатура = ЗаказВКарьерТовары.Номенклатура
| И втЗаказКлиентаОстаток.ЗаказКлиента.Ссылка = ЗаказВКарьерТовары.Ссылка
|ГДЕ
| ЗаказВКарьерТовары.Ссылка = &Ссылка";

теперь ругается:
{Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(83)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(12, 39)}: Неверные параметры
И ЗаказыКлиентовОстатки.ЗаказКлиента <<?>>В(&Ссылка)
что значит неверные параметры? когда я массив туда передаю:
Запрос.УстановитьПараметр("Ссылка", Массив);
3. Вожак 19.02.14 17:18 Сейчас в теме
ЗаказВКарьер.Товары тоже не передать
6. Release 19.02.14 17:31 Сейчас в теме
(3) Вожак, Вам уже указали, что для переданного списка в качестве параметра нужно использовать конструкция "В (&Параметр)", а не "= &Параметр".
Изучайте мат.часть. И используйте соответствующие теги для кода, пожалуйста.
5. Вожак 19.02.14 17:27 Сейчас в теме
{Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(83)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(12, 39)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И ЗаказыКлиентовОстатки.ЗаказКлиента <<?>>= &Ссылка
хотя вот, все равно летит)
7. Вожак 19.02.14 17:33 Сейчас в теме
я так и делал, и все равно:
{Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(83)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(12, 39)}: Неверные параметры
И ЗаказыКлиентовОстатки.ЗаказКлиента <<?>>В (&Ссылка)
вот код:
ВЫБРАТЬ
| ЗаказыКлиентовОстатки.Номенклатура,
| ЗаказыКлиентовОстатки.ЗаказаноОстаток,
| ЗаказыКлиентовОстатки.СуммаОстаток,
| ЗаказыКлиентовОстатки.ЗаказКлиента,
| ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка
|ПОМЕСТИТЬ втОстатки
|ИЗ
| РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
|ГДЕ
| ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0
| И ЗаказыКлиентовОстатки.ЗаказКлиента В (&Ссылка)
|;
|
| X
|ВЫБРАТЬ
| ЗаказВКарьер.Контрагент,
| ЗаказВКарьер.Дата,
| ЗаказВКарьер.Менеджер,
| ЗаказВКарьер.Организация,
| ЗаказВКарьер.Ссылка,
| втОстатки.Номенклатура,
| ЗаказВКарьерТовары.Цена,
| ЗаказВКарьерТовары.СтавкаНДС,
| ЗаказВКарьерТовары.ЕдиницаИзмерения,
| втОстатки.ЗаказаноОстаток,
| втОстатки.СуммаОстаток,
| втОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
| ВЫБОР
| КОГДА втОстатки.ЗаказаноОстаток = 0
| ТОГДА 0
| ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * втОстатки.ЗаказаноОстаток
| КОНЕЦ КАК СуммаНДС
|ИЗ
| втОстатки КАК втОстатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер КАК ЗаказВКарьер
| ПО втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьер.Ссылка
| И втОстатки.Номенклатура = ЗаказВКарьер.Товары.Номенклатура,
| Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
|ГДЕ
| ЗаказВКарьерТовары.Ссылка В(&Ссылка)";
8. starjevschik 19.02.14 17:43 Сейчас в теме
(7) Вожак,

Для Каждого Стр из Объект.ЗаказВКарьер Цикл
массив.добавить(Стр);
КонецЦикла;

чтобы сравнить В(&Ссылка), Ссылка должна быть массивом ссылок. И называться она, по-хорошему, должна МассивСсылок, как-нибудь так.
Отладчиком еще можно пользоваться, вместе с мануалом. Методом тыка и форума здесь в основном барышни "программируют" :) ну им-то простительно...
9. Вожак 19.02.14 17:45 Сейчас в теме
а как тип данных массив ссылок ей привязать?
11. starjevschik 19.02.14 17:48 Сейчас в теме
(9) Вожак, надо сделать массив и сложить туда ссылки.
Из того, что я вижу (дубль 2. Почему люди не читают даже то, что для них пишется??)

Для Каждого Стр из Объект.ЗаказВКарьер Цикл
массив.добавить(Стр);
КонецЦикла;

в массив сложены некие Стр. Есть подозрение, что это строки чего-то, то ли табличной части, то ли еще чего-то. А должны там быть ссылки на документы.
10. Вожак 19.02.14 17:47 Сейчас в теме
Отладчиков у меня тип Массив у него с выбранными данными
12. Вожак 19.02.14 17:49 Сейчас в теме
передавал туда: Стр.ЗаказВКарьерКлиента.Ссылка, все равно
13. jigourt 31 19.02.14 17:49 Сейчас в теме
вот честно, если бы код был в тэгах, я бы посмотрел, а так даже читать не хочется, потому что нечитабельно для меня по крайней мере )
15. Вожак 19.02.14 17:51 Сейчас в теме
(13) jigourt, вот процедура сама:
Процедура НаСервере()
	
	Массив=новый массив;
	
    Для Каждого Стр из Объект.ЗаказВКарьер Цикл
        массив.добавить(Стр.ЗаказВКарьерКлиента.Ссылка);
	КонецЦикла;
	
	Запрос=Новый Запрос;
	Запрос.Текст= "ВЫБРАТЬ
	              |	ЗаказыКлиентовОстатки.Номенклатура,
	              |	ЗаказыКлиентовОстатки.ЗаказаноОстаток,
	              |	ЗаказыКлиентовОстатки.СуммаОстаток,
	              |	ЗаказыКлиентовОстатки.ЗаказКлиента,
	              |	ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка
	              |ПОМЕСТИТЬ втОстатки
	              |ИЗ
	              |	РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
	              |ГДЕ
	              |	ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0
	              |	И ЗаказыКлиентовОстатки.ЗаказКлиента В (&МассивСсылка)
	              |;
	              |
	              | X 
	              |ВЫБРАТЬ
	              |	ЗаказВКарьер.Контрагент,
	              |	ЗаказВКарьер.Дата,
	              |	ЗаказВКарьер.Менеджер,
	              |	ЗаказВКарьер.Организация,
	              |	ЗаказВКарьер.Ссылка,
	              |	втОстатки.Номенклатура,
	              |	ЗаказВКарьерТовары.Цена,
	              |	ЗаказВКарьерТовары.СтавкаНДС,
	              |	ЗаказВКарьерТовары.ЕдиницаИзмерения,
	              |	втОстатки.ЗаказаноОстаток,
	              |	втОстатки.СуммаОстаток,
	              |	втОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
	              |	ВЫБОР
	              |		КОГДА втОстатки.ЗаказаноОстаток = 0
	              |			ТОГДА 0
	              |		ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * втОстатки.ЗаказаноОстаток
	              |	КОНЕЦ КАК СуммаНДС
	              |ИЗ
	              |	втОстатки КАК втОстатки
	              |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер КАК ЗаказВКарьер
	              |		ПО втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьер.Ссылка
	              |			И втОстатки.Номенклатура = ЗаказВКарьер.Товары.Номенклатура,
	              |	Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
	              |ГДЕ
	              |	ЗаказВКарьерТовары.Ссылка В(&МассивСсылка)";
				  
				                  
    Запрос.УстановитьПараметр("МассивСсылка", Массив);
    Результат = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = Результат.Выбрать();
	
	ТТН=Документы.ТТН.СоздатьДокумент();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		ТТН.Организация = ВыборкаДетальныеЗаписи.ЗаказКлиента.Организация;
		ТТН.Дата = ВыборкаДетальныеЗаписи.ЗаказКлиента.Дата;
		ТТН.Контрагент = ВыборкаДетальныеЗаписи.ЗаказКлиента.Контрагент;
		
		НоваяСтрока = ТТН.Товары.Добавить();
		
		Если ВыборкаДетальныеЗаписи.ЗаказаноОстаток = 0 Тогда
			Продолжить;
		КонецЕсли;	
			
			НоваяСтрока.ЕдиницаИзмерения 	= ВыборкаДетальныеЗаписи.ЕдиницаИзмерения;
			НоваяСтрока.Количество 				= ВыборкаДетальныеЗаписи.Количество;
			НоваяСтрока.Номенклатура 			= ВыборкаДетальныеЗаписи.Номенклатура;
			НоваяСтрока.СтавкаНДС 				= ВыборкаДетальныеЗаписи.СтавкаНДС;
			НоваяСтрока.Сумма 					= ВыборкаДетальныеЗаписи.Сумма;
			НоваяСтрока.СуммаНДС 				= ВыборкаДетальныеЗаписи.СуммаНДС;
			НоваяСтрока.СуммаСНДС 				= ВыборкаДетальныеЗаписи.СуммаСНДС;
			НоваяСтрока.Цена 					= ВыборкаДетальныеЗаписи.Цена;
			НоваяСтрока.ЗаказВКарьер 			= ВыборкаДетальныеЗаписи.ЗаказКлиента;
			
		КонецЦикла;
		
	ТТН.записать();
	ТТн.ПолучитьФорму("ФормаДокумента").Открыть();
	//ТТн.поткрыть();
КонецПроцедуры
Показать
16. Вожак 19.02.14 17:51 Сейчас в теме
в (15) вылетает ошибка (12)
17. jigourt 31 19.02.14 17:53 Сейчас в теме
(16) Вожак, замени массив на список значений )
14. Вожак 19.02.14 17:49 Сейчас в теме
точнее вот что вылетает в ошибке:
{Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(83)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
Ошибка выполнения запроса
по причине:
Запрос невозможно исполнить
18. Вожак 19.02.14 17:54 Сейчас в теме
все равно:
{Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(61)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
Ошибка выполнения запроса
по причине:
Запрос невозможно исполнить
19. jigourt 31 19.02.14 17:55 Сейчас в теме
(18) Вожак, а конструктор запроса открывает этот запрос?
21. Вожак 19.02.14 17:56 Сейчас в теме
34. Consultant_1C 171 19.02.14 18:55 Сейчас в теме
(18) Вожак, пришел к пиковой точке =)
20. Вожак 19.02.14 17:55 Сейчас в теме
СписокЗнач=новый СписокЗначений;
	
    Для Каждого Стр из Объект.ЗаказВКарьер Цикл
        СписокЗнач.добавить(Стр.ЗаказВКарьерКлиента.Ссылка);
	КонецЦикла;
	
	Запрос=Новый Запрос;
	Запрос.Текст= "ВЫБРАТЬ
	              |	ЗаказыКлиентовОстатки.Номенклатура,
	              |	ЗаказыКлиентовОстатки.ЗаказаноОстаток,
	              |	ЗаказыКлиентовОстатки.СуммаОстаток,
	              |	ЗаказыКлиентовОстатки.ЗаказКлиента,
	              |	ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка
	              |ПОМЕСТИТЬ втОстатки
	              |ИЗ
	              |	РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
	              |ГДЕ
	              |	ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0
	              |	И ЗаказыКлиентовОстатки.ЗаказКлиента В (&СписокЗнач)
	              |;
	              |
	              | X 
	              |ВЫБРАТЬ
	              |	ЗаказВКарьер.Контрагент,
	              |	ЗаказВКарьер.Дата,
	              |	ЗаказВКарьер.Менеджер,
	              |	ЗаказВКарьер.Организация,
	              |	ЗаказВКарьер.Ссылка,
	              |	втОстатки.Номенклатура,
	              |	ЗаказВКарьерТовары.Цена,
	              |	ЗаказВКарьерТовары.СтавкаНДС,
	              |	ЗаказВКарьерТовары.ЕдиницаИзмерения,
	              |	втОстатки.ЗаказаноОстаток,
	              |	втОстатки.СуммаОстаток,
	              |	втОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
	              |	ВЫБОР
	              |		КОГДА втОстатки.ЗаказаноОстаток = 0
	              |			ТОГДА 0
	              |		ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * втОстатки.ЗаказаноОстаток
	              |	КОНЕЦ КАК СуммаНДС
	              |ИЗ
	              |	втОстатки КАК втОстатки
	              |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер КАК ЗаказВКарьер
	              |		ПО втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьер.Ссылка
	              |			И втОстатки.Номенклатура = ЗаказВКарьер.Товары.Номенклатура,
	              |	Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
	              |ГДЕ
	              |	ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)";
				  
				                  
    Запрос.УстановитьПараметр("СписокЗнач", СписокЗнач);
    Результат = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = Результат.Выбрать();
Показать


почему не удалось выполнить хер пойми(
26. starjevschik 19.02.14 18:05 Сейчас в теме
(20) Вожак,
                 |ИЗ
                  |    втОстатки КАК втОстатки
                  |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер КАК ЗаказВКарьер
                  |        ПО втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьер.Ссылка
                  |            И втОстатки.Номенклатура = ЗаказВКарьер.Товары.Номенклатура,
                  |    Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
                  |ГДЕ
                  |    ЗаказВКарьерТовары.Ссылка В(&МассивСсылка)";
 
Показать

а насчет смысла такого запроса вообще идеи есть?
Выбираются данные из двух таблиц независимо - из остатков и табличной части документа. Что это вообще такое должно быть по задумке автора?...
27. Вожак 19.02.14 18:06 Сейчас в теме
(26) starjevschik, я хочу взять все остатки по выбранным документам, и ими заполнить документ. А вообще задумка была, формировать 1 ТТН документ на основании 2х заказов например
35. starjevschik 19.02.14 20:51 Сейчас в теме
(27) Вожак,
я хочу взять все остатки по выбранным документам, и ими заполнить документ

надо для начала осмыслить запрос и написать его правильно. Потом уже ставить параметры. Запрос будет чуть сложнее самого банального, поэтому нам пригодится понимание того, что такое таблица базы данных, что возвращают запросы и как связываются между собой таблицы в запросе, что такое СОЕДИНЕНИЕ, левое, правое, полное.
Я не готов сейчас читать лекцию на эту тему, советую 1) ознакомиться с документацией, причем лучше не по 1с, а по языку запросов SQL, из которого сделан язык запросов 1с.
Дальше советую 2) составить запрос с ОДНИМ документом. Составить полностью, от начала до конца, и чтобы он в консоли запросов давал правильный результат. Для правильности советую в документе сделать несколько строк. Если в одном документе может быть две строки с одной номенклатурой, то советую так и сделать. И вот на таких данных получить правильный результат.
И вот только после выполнения пп 1) и 2) можно будет переходить к передаче в запрос нескольких документов.
Сейчас беседа явно зашла в тупик из-за того, что делается совершенно не то, что ведет к цели :)
30. jigourt 31 19.02.14 18:20 Сейчас в теме
(20) Вожак, стоп, вы же соединяете документ с ТЧ во втором пакете. что за глупости?? )))
31. Release 19.02.14 18:23 Сейчас в теме
(30)правильно подметил нельзя ссылаться на ТЧ, если выборка идет из самого документа, а не его ТЧ
32. Release 19.02.14 18:26 Сейчас в теме
Тут (исходя из (20)):
                  |ИЗ
                  |    втОстатки КАК втОстатки
                  |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер КАК ЗаказВКарьер
                  |        ПО втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьер.Ссылка
                  |            И втОстатки.Номенклатура = ЗаказВКарьер.Товары.Номенклатура,
                  |    Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
вообще мусор какой-то - соединение с документом, а не ТЧ. Выборка из ТЧ документа, но без соединения.
22. Вожак 19.02.14 18:00 Сейчас в теме
может нюансы в управляемом приложении в запросах на сервере есть какие-нибудь?
23. Release 19.02.14 18:01 Сейчас в теме
Хочется узнать, какой тип у Стр.ЗаказВКарьерКлиента?
Может надо все таки так:
    Для Каждого Стр из Объект.ЗаказВКарьер Цикл
        СписокЗнач.добавить(Стр.ЗаказВКарьерКлиента);
    КонецЦикла;
24. Вожак 19.02.14 18:02 Сейчас в теме
ДокументСсылка.ЗаказвКарьер
25. Release 19.02.14 18:04 Сейчас в теме
(24) Вожак, посмотри (23) пример
28. Вожак 19.02.14 18:06 Сейчас в теме
(25) Release,
Для Каждого Стр из Объект.ЗаказВКарьер Цикл
        СписокЗнач.добавить(Стр.ЗаказВКарьерКлиента);
	КонецЦикла;


вот так у меня было
29. Release 19.02.14 18:18 Сейчас в теме
(28) Вожак, в (20) указано
СписокЗнач.добавить(Стр.ЗаказВКарьерКлиента.Ссылка);
33. jigourt 31 19.02.14 18:27 Сейчас в теме
в общем запрос надо переделать, надо сделать соединение ТЧ документа из второго пакета с регистром из первого и все будет гуд
36. Вожак 20.02.14 10:42 Сейчас в теме
у меня точно такой же запрос есть в обработке заполнения ТТН, если вводить ТТН на основании заказа, и там же запрос работает, почему тут нет?
37. Вожак 20.02.14 10:56 Сейчас в теме
СписокЗнач=новый СписокЗначений;
	
    Для Каждого Стр из Объект.ЗаказВКарьер Цикл
        СписокЗнач.добавить(Стр.ЗаказВКарьерКлиента);
	КонецЦикла;
	
	Запрос=Новый Запрос;
	Запрос.Текст=  "ВЫБРАТЬ
	               |	ЗаказВКарьерТовары.Номенклатура,
	               |	ЗаказВКарьерТовары.Количество,
	               |	ЗаказВКарьерТовары.Цена,
	               |	ЗаказВКарьерТовары.Сумма,
	               |	ЗаказВКарьерТовары.СтавкаНДС,
	               |	ЗаказВКарьерТовары.ЕдиницаИзмерения,
	               |	ЗаказВКарьерТовары.СуммаНДС,
	               |	ЗаказВКарьерТовары.Ссылка.Контрагент,
	               |	ЗаказВКарьерТовары.Ссылка.Организация,
	               |	ЗаказВКарьерТовары.Ссылка.Менеджер,
	               |	ЗаказВКарьерТовары.Ссылка.Дата
	               |ИЗ
	               |	Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
	               |ГДЕ
	               |	ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)";
Запрос.УстановитьПараметр("СписокЗнач", СписокЗнач);
    Результат = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = Результат.Выбрать();

Показать


вот запрос выбирает данные ИЗ ТЧ По документам, которые я передал в список значений, теперь нужно выбрать только остатки по этим документам чтобы переносились
38. Release 20.02.14 11:03 Сейчас в теме
(37) Вожак, ну, так и сделай выборку остатков и соединяй потом правильно, а не как в (20) - у тебя там выборка правильная, а соединение нет.
39. Вожак 20.02.14 11:10 Сейчас в теме
"ВЫБРАТЬ
	               |	ЗаказВКарьерТовары.Номенклатура,
	               |	ЗаказВКарьерТовары.Количество,
	               |	ЗаказВКарьерТовары.Цена,
	               |	ЗаказВКарьерТовары.Сумма,
	               |	ЗаказВКарьерТовары.СтавкаНДС,
	               |	ЗаказВКарьерТовары.ЕдиницаИзмерения,
	               |	ЗаказВКарьерТовары.СуммаНДС,
	               |	ЗаказВКарьерТовары.Ссылка.Контрагент,
	               |	ЗаказВКарьерТовары.Ссылка.Организация,
	               |	ЗаказВКарьерТовары.Ссылка.Менеджер,
	               |	ЗаказВКарьерТовары.Ссылка.Дата,
	               |	ЗаказыКлиентовОстатки.Номенклатура КАК Номенклатура1,
	               |	ЗаказыКлиентовОстатки.ЗаказаноОстаток,
	               |	ЗаказыКлиентовОстатки.СуммаОстаток,
	               |	ЗаказыКлиентовОстатки.СуммаБезНДСОстаток
	               |ИЗ
	               |	Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
	               |		ПО ЗаказВКарьерТовары.Номенклатура = ЗаказыКлиентовОстатки.Номенклатура
	               |ГДЕ
	               |	ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)
	               |	И ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0";
Показать


так?
40. mymyka 20.02.14 11:14 Сейчас в теме
(39)Теперь представьте, что получится, если в документах будет несколько строк с одинаковой номенклатурой.
50. Вожак 20.02.14 12:17 Сейчас в теме
так по сути если убрать временную таблицу, получится то, что я писал в (39)
41. Вожак 20.02.14 11:16 Сейчас в теме
В Документе 1 есть песок обычный, и в Документе 2 есть песок обычный, когда я хочу по остаткам создать документ на основании этих 2х документов, будет песок обычный в одной строке, и песок обычный в другой, то есть 2 строки с одинаковой номенклатурой
42. mymyka 20.02.14 11:47 Сейчас в теме
(41)И у каждого будут остатки равные сумме остатков Песок обычный по всем заказам.
44. mymyka 20.02.14 11:51 Сейчас в теме
(42)В (20) у вас все верно было, за исключением того, что во втором запросе надо брать только ТЧ документа, а параметры документа получать из ДОкументТовары.ССылка.НужныйПараметр
(43)У вас условие накладывается только на левую часть соединения. При этом параметр, на который накладывается условие в соединение не входит.
43. Вожак 20.02.14 11:49 Сейчас в теме
хм, а как сделать, чтобы остатки только по текущему тогда заказу были? я же передал параметр ссылки на остатки в список значений моих документов
45. Вожак 20.02.14 11:53 Сейчас в теме
не совсем поняол, я же во втором запросе и беру данные из ТЧ документа
46. jigourt 31 20.02.14 12:02 Сейчас в теме
а еще есть группировка
47. mymyka 20.02.14 12:04 Сейчас в теме
|ВЫБРАТЬ
                  |    ЗаказВКарьер.Контрагент,
                  |    ЗаказВКарьер.Дата,
                  |    ЗаказВКарьер.Менеджер,
                  |    ЗаказВКарьер.Организация,
                  |    ЗаказВКарьер.Ссылка,
                  |    втОстатки.Номенклатура,
                  |    ЗаказВКарьерТовары.Цена,
                  |    ЗаказВКарьерТовары.СтавкаНДС,
                  |    ЗаказВКарьерТовары.ЕдиницаИзмерения,
                  |    втОстатки.ЗаказаноОстаток,
                  |    втОстатки.СуммаОстаток,
                  |    втОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
                  |    ВЫБОР
                  |        КОГДА втОстатки.ЗаказаноОстаток = 0
                  |            ТОГДА 0
                  |        ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * втОстатки.ЗаказаноОстаток
                  |    КОНЕЦ КАК СуммаНДС
                  |ИЗ
                  |    втОстатки КАК втОстатки
                  |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер КАК ЗаказВКарьер
                  |        ПО втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьер.Ссылка
                  |            И втОстатки.Номенклатура = ЗаказВКарьер.Товары.Номенклатура,
                  |    Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
                  |ГДЕ
                  |    ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)";
Показать

выборка из тч, соединение с документом, условие на тч, поправьте этот бред и все будет работать.
48. Вожак 20.02.14 12:06 Сейчас в теме
убрать временную таблицу?
49. mymyka 20.02.14 12:11 Сейчас в теме
(48)убрать, а точнее заменить на ЗаказВКарьерТовары.Ссылка.ТоЧтоНадо
| ЗаказВКарьер.Контрагент,
| ЗаказВКарьер.Дата,
| ЗаказВКарьер.Менеджер,
| ЗаказВКарьер.Организация,
| ЗаказВКарьер.Ссылка,
А тут, соответственно
на ЗаказВКарьерТовары.Ссылка и ЗаказВКарьерТовары.Номенклатура
ПО втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьер.Ссылка
| И втОстатки.Номенклатура = ЗаказВКарьер.Товары.Номенклатура,
у вас соединяются ТРИ таблицы, а должны быть ДВЕ.
51. Вожак 20.02.14 12:22 Сейчас в теме
(49) mymyka, вот что нарисовал:
ВЫБРАТЬ
	|	ЗаказыКлиентовОстатки.Номенклатура,
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток,
	|	ЗаказыКлиентовОстатки.СуммаОстаток,
	|	ЗаказыКлиентовОстатки.ЗаказКлиента,
	|	ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка
	|ПОМЕСТИТЬ втОстатки
	|ИЗ
	|	РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
	|ГДЕ
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0
	|	И ЗаказыКлиентовОстатки.ЗаказКлиента В(&СписокЗнач)
	|;
	|
	| X 
	|ВЫБРАТЬ
	|	ЗаказВКарьер.Контрагент,
	|	ЗаказВКарьер.Дата,
	|	ЗаказВКарьер.Менеджер,
	|	ЗаказВКарьер.Организация,
	|	ЗаказВКарьер.Ссылка,
	|	ЗаказВКарьерТовары.Цена,
	|	ЗаказВКарьерТовары.СтавкаНДС,
	|	ЗаказВКарьерТовары.ЕдиницаИзмерения,
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
	|	ВЫБОР
	|		КОГДА ЗаказыКлиентовОстатки.ЗаказаноОстаток = 0
	|			ТОГДА 0
	|		ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * ЗаказыКлиентовОстатки.ЗаказаноОстаток
	|	КОНЕЦ КАК СуммаНДС,
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток КАК ЗаказаноОстаток1,
	|	ЗаказыКлиентовОстатки.СуммаОстаток КАК СуммаОстаток1,
	|	ЗаказыКлиентовОстатки.Номенклатура КАК Номенклатура1
	|ИЗ
	|	Документ.ЗаказВКарьер КАК ЗаказВКарьер
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
	|			ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
	|			ПО ЗаказВКарьерТовары.Номенклатура = ЗаказыКлиентовОстатки.Номенклатура
	|		ПО ЗаказВКарьер.Ссылка = ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка
	|ГДЕ
	|	ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)
Показать
56. mymyka 20.02.14 12:32 Сейчас в теме
(51)/рукалицо
Временная таблица у тебя в ПЕРВОМ запросе, никуда ее убирать не надо.
Надо убрать любое упоминание о ДОКУМЕНТЕ, а все данные получать из ТАБЛИЧНОЙ ЧАСТИ!
Во втором запросе пакета у тебя должно быть ДВЕ таблицы.
Когда строишь запроса, надо из таблицы метаданных мышой тащить не сам документ, а его табличную часть. Я просто не знаю, как еще объяснить.
|ИЗ
| Документ.ЗаказВКарьер КАК ЗаказВКарьер
вот тут долджно быть
|ИЗ
| Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
59. Вожак 20.02.14 12:37 Сейчас в теме
(56) mymyka, суда по тому, как вы сказали, получается следующее:
ВЫБРАТЬ
	|	ЗаказыКлиентовОстатки.Номенклатура,
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток,
	|	ЗаказыКлиентовОстатки.СуммаОстаток,
	|	ЗаказыКлиентовОстатки.ЗаказКлиента,
	|	ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка
	|ПОМЕСТИТЬ втОстатки
	|ИЗ
	|	РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
	|ГДЕ
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0
	|	И ЗаказыКлиентовОстатки.ЗаказКлиента В(&СписокЗнач)
	|;
	|
	| X 
	|ВЫБРАТЬ
	|	втОстатки.Номенклатура,
	|	ЗаказВКарьерТовары.Цена,
	|	ЗаказВКарьерТовары.СтавкаНДС,
	|	ЗаказВКарьерТовары.ЕдиницаИзмерения,
	|	втОстатки.ЗаказаноОстаток,
	|	втОстатки.СуммаОстаток,
	|	втОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
	|	ВЫБОР
	|		КОГДА втОстатки.ЗаказаноОстаток = 0
	|			ТОГДА 0
	|		ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * втОстатки.ЗаказаноОстаток
	|	КОНЕЦ КАК СуммаНДС,
	|	ЗаказВКарьерТовары.Ссылка.Контрагент КАК Контрагент1,
	|	ЗаказВКарьерТовары.Ссылка.Дата КАК Дата1,
	|	ЗаказВКарьерТовары.Ссылка.Менеджер КАК Менеджер1,
	|	ЗаказВКарьерТовары.Ссылка.Организация КАК Организация1
	|ИЗ
	|	втОстатки КАК втОстатки
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
	|		ПО втОстатки.Номенклатура = ЗаказВКарьерТовары.Номенклатура
	|			И втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьерТовары.Ссылка
	|ГДЕ
	|	ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)
Показать
52. Вожак 20.02.14 12:26 Сейчас в теме
хотя вот, обновленный вариант:
"ВЫБРАТЬ
	|	ЗаказВКарьер.Контрагент,
	|	ЗаказВКарьер.Дата,
	|	ЗаказВКарьер.Менеджер,
	|	ЗаказВКарьер.Организация,
	|	ЗаказВКарьер.Ссылка,
	|	ЗаказВКарьерТовары.Цена,
	|	ЗаказВКарьерТовары.СтавкаНДС,
	|	ЗаказВКарьерТовары.ЕдиницаИзмерения,
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
	|	ВЫБОР
	|		КОГДА ЗаказыКлиентовОстатки.ЗаказаноОстаток = 0
	|			ТОГДА 0
	|		ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * ЗаказыКлиентовОстатки.ЗаказаноОстаток
	|	КОНЕЦ КАК СуммаНДС,
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток КАК Количество,
	|	ЗаказыКлиентовОстатки.СуммаОстаток КАК СуммаСНДС,
	|	ЗаказыКлиентовОстатки.Номенклатура КАК Номенклатура
	|ИЗ
	|	Документ.ЗаказВКарьер КАК ЗаказВКарьер
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
	|			ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
	|			ПО (ЗаказВКарьерТовары.Номенклатура = ЗаказыКлиентовОстатки.Номенклатура)
	|		ПО ЗаказВКарьер.Ссылка = ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка
	|ГДЕ
	|	ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)
	|	И ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0";
Показать
54. Consultant_1C 171 20.02.14 12:29 Сейчас в теме
55. Вожак 20.02.14 12:30 Сейчас в теме
(54) Consultant_1C, да, только данные тебе задваиваются
53. Consultant_1C 171 20.02.14 12:28 Сейчас в теме
А док. Заказ в карьер делает движение по регистру накопления Заказы клиентов ? =)
57. Consultant_1C 171 20.02.14 12:33 Сейчас в теме
НАверное все из-за

Документ.ЗаказВКарьер КАК ЗаказВКарьер
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары


А в регистре Накопления Заказы клиентов Реквизит заказ клиента какой тип ????
58. Вожак 20.02.14 12:34 Сейчас в теме
вы меня запутали с удалениями таблиц, давайте по порядку, первый запрос по РН:
ВЫБРАТЬ
	ЗаказыКлиентовОстатки.Номенклатура,
	ЗаказыКлиентовОстатки.ЗаказаноОстаток,
	ЗаказыКлиентовОстатки.СуммаОстаток,
	ЗаказыКлиентовОстатки.ЗаказКлиента
ПОМЕСТИТЬ втОстатки
ИЗ
	РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
ГДЕ
	ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0
	И ЗаказыКлиентовОстатки.ЗаказКлиента В(&СписокЗнач)
;
Показать

так? мы делаем из него ВТ?
60. Вожак 20.02.14 12:41 Сейчас в теме
вроде сформировалось, но только теперь появилась новая трабла: у меня управляемое приложение, а когда создаетс ядокумент, он открывается как в обычном приложении, почему так?
ТТН=Документы.ТТН.СоздатьДокумент();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		ТТН.Организация = ВыборкаДетальныеЗаписи.Организация;
		ТТН.Дата = ВыборкаДетальныеЗаписи.Дата;
		ТТН.Контрагент = ВыборкаДетальныеЗаписи.Контрагент;
		
		НоваяСтрока = ТТН.Товары.Добавить();
		
		Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
			Продолжить;
		КонецЕсли;	
			
			НоваяСтрока.ЕдиницаИзмерения 	= ВыборкаДетальныеЗаписи.ЕдиницаИзмерения;
			НоваяСтрока.Количество 				= ВыборкаДетальныеЗаписи.Количество;
			НоваяСтрока.Номенклатура 			= ВыборкаДетальныеЗаписи.Номенклатура;
			НоваяСтрока.СтавкаНДС 				= ВыборкаДетальныеЗаписи.СтавкаНДС;
			НоваяСтрока.Сумма 					= ВыборкаДетальныеЗаписи.Сумма;
			НоваяСтрока.СуммаНДС 				= ВыборкаДетальныеЗаписи.СуммаНДС;
			НоваяСтрока.СуммаСНДС 				= ВыборкаДетальныеЗаписи.СуммаНДС + ВыборкаДетальныеЗаписи.Сумма;
			НоваяСтрока.Цена 					= ВыборкаДетальныеЗаписи.Цена;
			//НоваяСтрока.ЗаказВКарьер 			= ВыборкаДетальныеЗаписи.ЗаказКлиента;
			
		КонецЦикла;
		
	ТТН.записать();
	ТТн.ПолучитьФорму("ФормаДокумента").Открыть();
Показать
62. Release 20.02.14 12:48 Сейчас в теме
(60) Вожак, вместо "ФормаДокумента" нужно указать имя управляемой формы.
63. Вожак 20.02.14 13:00 Сейчас в теме
(62) Release, а где ее посмотреть? я думал как в обычном приложении указываешь форму на которую тебе нужно выводить результат и все
61. Consultant_1C 171 20.02.14 12:43 Сейчас в теме
а такой запрос не катит ???
ВЫБРАТЬ
ЗаказВКарьер.Контрагент,
ЗаказВКарьер.Дата,
ЗаказВКарьер.Менеджер,
ЗаказВКарьер.Организация,
ЗаказВКарьер.Ссылка,
ЗаказВКарьерТовары.Номенклатура КАК Номенклатура,
ЗаказВКарьерТовары.Цена,
ЗаказВКарьерТовары.СтавкаНДС,
ЗаказВКарьерТовары.ЕдиницаИзмерения,
ЗаказыКлиентовОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
ВЫБОР
КОГДА ЗаказыКлиентовОстатки.ЗаказаноОстаток = 0
ТОГДА 0
ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * ЗаказыКлиентовОстатки.ЗаказаноОстаток
КОНЕЦ КАК СуммаНДС,
ПОМЕСТИТЬ ВТ_Документ
ИЗ Документ.ЗаказВКарьер КАК ЗаказВКарьер
ГДЕ ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)

;

ВЫБРАТЬ
ВТ_Документ.Контрагент,
ВТ_Документ.Дата,
ВТ_Документ.Менеджер,
ВТ_Документ.Организация,
ВТ_Документ.Ссылка,
ВТ_Документ.Номенклатура,
ВТ_Документ.Цена,
ВТ_Документ.СтавкаНДС,
ВТ_Документ.ЕдиницаИзмерения,
ВТ_Документ.Сумма,
ВТ_Документ.СуммаНДС,
ЗаказыКлиентовОстатки.ЗаказаноОстаток КАК Количество,
ЗаказыКлиентовОстатки.СуммаОстаток КАК СуммаСНДС,
ИЗ ВТ_Документ как ВТ_Документ
левое соединение РегистрНакопления.ЗаказыКлиентов.Остатки(,Номенклатура в(
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВТ_Документ.Номенклатура
ИЗ ВТ_Документ КАК ВТ_Документ)) КАК ЗаказыКлиентовОстатки
по ВТ_Документ.Номенклатура = ЗаказыКлиентовОстатки.Номенклатура
Показать
64. Вожак 20.02.14 13:37 Сейчас в теме
как вывод на управляемую форму то сделать?
69. mymyka 20.02.14 14:01 Сейчас в теме
(64)У документа управляемая форма то есть?
65. berator37 70 20.02.14 13:57 Сейчас в теме
Кому интересно могу скинуть для БП2
66. Вожак 20.02.14 13:58 Сейчас в теме
(65) berator37, зачем тут твоя БП? я спросил как на форму упр приложения вывести корректно дкоументы все
68. jigourt 31 20.02.14 14:01 Сейчас в теме
(66) Вожак, эм, а управляемая форма у этого документа вообще есть?
70. Вожак 20.02.14 14:02 Сейчас в теме
(68) jigourt, при открытии управляемая форма открывается же
71. Release 20.02.14 14:03 Сейчас в теме
(70) Вожак, какая форма установлена в качестве основной для документа?
74. Вожак 20.02.14 14:04 Сейчас в теме
(71) Release,
Прикрепленные файлы:
73. jigourt 31 20.02.14 14:03 Сейчас в теме
(70) Вожак, ну вообще ОткрытьФорму("Документ.НазваниеДокумента.ФормаДокумента");

еще есть кажется ОткрытьЗначение(СсылкаНаДок);
67. timothy 20.02.14 14:00 Сейчас в теме
(65) berator37, Мне очень интересно, можете скинуть на timothy_but@mail.ru ?!
72. Вожак 20.02.14 14:03 Сейчас в теме
и в параметрах и при запуске 1ске везде стоит управляемое приложение
75. Вожак 20.02.14 14:05 Сейчас в теме
Вот форма
Прикрепленные файлы:
76. jigourt 31 20.02.14 14:08 Сейчас в теме
(75) Вожак, надо код глядеть
77. Вожак 20.02.14 14:09 Сейчас в теме
   &НаКлиенте
   Процедура Команда1(Команда)
	   НаСервере();    
   КонецПроцедуры

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

&НаКлиенте
Процедура ОткрытиеФормы(Документ)
	
КонецПроцедуры

Показать
78. jigourt 31 20.02.14 14:10 Сейчас в теме
(77) Вожак, форму открываешь на сервере
79. Вожак 20.02.14 14:10 Сейчас в теме
(78) jigourt, на клиенте летит ошибка что функция не обнаружена
81. jigourt 31 20.02.14 14:13 Сейчас в теме
(79) Вожак, передай на клиент ссылку
ОткрытиеФормы(ТТН.Ссылка);

а на клиенте
Структура = Новый СТруктура("Ключ",Документ);
ОткрытьФорму("Документ.ТТН.ФормаДокумента",Структура);
82. Вожак 20.02.14 14:14 Сейчас в теме
(81) jigourt, сделал так:
ТТН.записать();
	ТТн.ПолучитьФорму("ФормаДокумента");
	ОткрытиеФормы(ТТН.Ссылка);
	//ТТн.поткрыть();
КонецПроцедуры

&НаКлиенте
Процедура ОткрытиеФормы(Документ)
Структура = Новый СТруктура("Ключ",Документ);
ОткрытьФорму("Документ.ТТН.ФормаДокумента",Структура);	
КонецПроцедуры
Показать

и все равно ругается:
{Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(91,2)}: Процедура или функция с указанным именем не определена (ОткрытиеФормы)
	<<?>>ОткрытиеФормы(ТТН.Ссылка); (Проверка: Сервер)
80. Вожак 20.02.14 14:11 Сейчас в теме
{Обработка.ОбработкаЗагрузкиТТН.Форма.Форма.Форма(91,2)}: Процедура или функция с указанным именем не определена (ОткрытиеФормы)
<<?>>ОткрытиеФормы(ТТН); (Проверка: Сервер)

&НаКлиенте
Процедура ОткрытиеФормы(Документ)
Документ.Открыть();
КонецПроцедуры
83. jigourt 31 20.02.14 14:14 Сейчас в теме
(80) Вожак, а, блин, все никак не привыкну, сделай из серверной процедуры функцию, которая возвращает ТТН.Ссылка
84. jigourt 31 20.02.14 14:15 Сейчас в теме
   &НаКлиенте
   Процедура Команда1(Команда)
       Документ = НаСервере();
     Структура = Новый СТруктура("Ключ",Документ);
ОткрытьФорму("Документ.ТТН.ФормаДокумента",Структура);
   КонецПроцедуры

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

Показать
85. Вожак 20.02.14 14:17 Сейчас в теме
эм, а как открыть ее потом?
  &НаКлиенте
   Процедура Команда1(Команда)
	   НаСервере(); 
	   //ОткрытьФорму(ТТН);
   КонецПроцедуры

&Насервере
Функция НаСервере()
	
	СписокЗнач=новый СписокЗначений;
	
    Для Каждого Стр из Объект.ЗаказВКарьер Цикл
        СписокЗнач.добавить(Стр.ЗаказВКарьерКлиента);
	КонецЦикла;
	
	Запрос=Новый Запрос;
	Запрос.Текст=  	
	"ВЫБРАТЬ
	|	ЗаказыКлиентовОстатки.Номенклатура,
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток,
	|	ЗаказыКлиентовОстатки.СуммаОстаток,
	|	ЗаказыКлиентовОстатки.ЗаказКлиента,
	|	ЗаказыКлиентовОстатки.ЗаказКлиента.Ссылка
	|ПОМЕСТИТЬ втОстатки
	|ИЗ
	|	РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
	|ГДЕ
	|	ЗаказыКлиентовОстатки.ЗаказаноОстаток > 0
	|	И ЗаказыКлиентовОстатки.ЗаказКлиента В(&СписокЗнач)
	|;
	|
	| X 
	|ВЫБРАТЬ
	|	втОстатки.Номенклатура,
	|	ЗаказВКарьерТовары.Цена,
	|	ЗаказВКарьерТовары.СтавкаНДС,
	|	ЗаказВКарьерТовары.ЕдиницаИзмерения,
	|	втОстатки.ЗаказаноОстаток КАК Количество,
	|	втОстатки.СуммаОстаток КАК СуммаСНДС,
	|	втОстатки.ЗаказаноОстаток * ЗаказВКарьерТовары.Цена КАК Сумма,
	|	ВЫБОР
	|		КОГДА втОстатки.ЗаказаноОстаток = 0
	|			ТОГДА 0
	|		ИНАЧЕ ЗаказВКарьерТовары.СуммаНДС / ЗаказВКарьерТовары.Количество * втОстатки.ЗаказаноОстаток
	|	КОНЕЦ КАК СуммаНДС,
	|	ЗаказВКарьерТовары.Ссылка.Контрагент КАК Контрагент,
	|	ЗаказВКарьерТовары.Ссылка.Дата КАК Дата,
	|	ЗаказВКарьерТовары.Ссылка.Менеджер КАК Менеджер,
	|	ЗаказВКарьерТовары.Ссылка.Организация КАК Организация
	|ИЗ
	|	втОстатки КАК втОстатки
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказВКарьер.Товары КАК ЗаказВКарьерТовары
	|		ПО втОстатки.Номенклатура = ЗаказВКарьерТовары.Номенклатура
	|			И втОстатки.ЗаказКлиентаСсылка = ЗаказВКарьерТовары.Ссылка
	|ГДЕ
	|	ЗаказВКарьерТовары.Ссылка В(&СписокЗнач)";
				  
				                  
    Запрос.УстановитьПараметр("СписокЗнач", СписокЗнач);
    Результат = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = Результат.Выбрать();
	
	ТТН=Документы.ТТН.СоздатьДокумент();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		ТТН.Организация = ВыборкаДетальныеЗаписи.Организация;
		ТТН.Дата = ВыборкаДетальныеЗаписи.Дата;
		ТТН.Контрагент = ВыборкаДетальныеЗаписи.Контрагент;
		
		НоваяСтрока = ТТН.Товары.Добавить();
		
		Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
			Продолжить;
		КонецЕсли;	
			
			НоваяСтрока.ЕдиницаИзмерения 	= ВыборкаДетальныеЗаписи.ЕдиницаИзмерения;
			НоваяСтрока.Количество 				= ВыборкаДетальныеЗаписи.Количество;
			НоваяСтрока.Номенклатура 			= ВыборкаДетальныеЗаписи.Номенклатура;
			НоваяСтрока.СтавкаНДС 				= ВыборкаДетальныеЗаписи.СтавкаНДС;
			НоваяСтрока.Сумма 					= ВыборкаДетальныеЗаписи.Сумма;
			НоваяСтрока.СуммаНДС 				= ВыборкаДетальныеЗаписи.СуммаНДС;
			НоваяСтрока.СуммаСНДС 				= ВыборкаДетальныеЗаписи.СуммаНДС + ВыборкаДетальныеЗаписи.Сумма;
			НоваяСтрока.Цена 					= ВыборкаДетальныеЗаписи.Цена;
			
		КонецЦикла;
		
	ТТН.записать();
	Возврат ТТН.Ссылка;
	//ТТн.ПолучитьФорму("ФормаДокумента");
	//ОткрытиеФормы(ТТН.Ссылка);
	//ТТн.поткрыть();
КонецФункции
Показать
86. jigourt 31 20.02.14 14:18 Сейчас в теме
87. Вожак 20.02.14 14:19 Сейчас в теме
да, теперь открылось норм, спс
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)