Имя: Пароль:
1C
1C 7.7
v7: Помогите с простым запросом
,
0 GStiv
 
28.11.11
21:52
В документ Реализация добавили реквизит ВидПродажи со ссылкой на перечисление
на форме выбираем это перечисление и получаем вид продажи, но пошли возвраты они естественно не попадают в отчет текст запроса
"//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Покупатель = Регистр.Продажи.Покупатель;
   |ПродСтоимость = Регистр.Продажи.ПродСтоимость;
   |Себестоимость = Регистр.Продажи.Себестоимость;
   |ТекущийДокумент = Регистр.Продажи.ТекущийДокумент;
   |ВидПродажи = Регистр.Продажи.ТекущийДокумент.Реализация.ВидПродажи;
   |Функция ПродСтоимостьСумма = Сумма(ПродСтоимость);
   |Функция СебестоимостьСумма = Сумма(Себестоимость);
   |Группировка Покупатель упорядочить по Покупатель.Наименование;
   |Группировка ТекущийДокумент;
   |Условие(ВидПродажи = ВыбВидПродажи);
   |"//}}ЗАПРОС
Документ возврата всегда вводится на основании реализации
можно было бы после запроса просматривать подчиненные документы и уменьшать реализацию, но не совсем удобно, итоги выводятся сверху затем расшифровка.
пробовал
|ВидПродажи = Регистр.Продажи.ТекущийДокумент.Реализация.ВидПродажи, Регистр.Продажи.ТекущийДокумент.ВозвратОтПокупателя.ДокОснование.Реализация.ВидПродажи;
неверный запрос, подскажите как можно вытащить видпродажи у докуента основания
1 andrewks
 
28.11.11
21:56
либо реквизитом в регистре прописывай, либо, на худой конец, в документе-возврате
2 Sh1ko
 
28.11.11
21:57
Добавь реквизит в регистр, это не последний отчет в котором понадобится
3 Sh1ko
 
28.11.11
21:58
а так ?

Регистр.Продажи.ТекущийДокумент.ВозвратОтПокупателя.ДокОснование.ВидПродажи;
4 GStiv
 
28.11.11
21:59
В том то и дело что не хотелось трогать ни регистр, ни вносить лишнюю информацию в документ возврата, причина очень проста, документооборот большой, работа только текущим днем, а вносить лишнее поле увеличивает вероятность ошибки операторами
5 andrewks
 
28.11.11
22:00
(4) а у вас все реквизиты операторы вручную забивают? даже автора?
6 GStiv
 
28.11.11
22:01
(3)
Запрос[7] : Неверно заданный путь 'ВидПродажи'
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{C:\BASE\*********.ERT(24)}: Условие(ВидПродажи = ВыбВидПродажи <<?>> );
Запрос[12] : Ошибка в условии
7 andrewks
 
28.11.11
22:03
можно внешней функцией прописать. но это будет жутко тормозить
8 GStiv
 
28.11.11
22:05
А пришла такая глупая идея, в зависимости от вида продажи создается договор с таким именем, может в эту сторону попробовать, но контрагенты обрабатываются все, сейчас попробую
9 andrewks
 
28.11.11
22:09
удачного совокупления
10 GStiv
 
28.11.11
22:12
"//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Покупатель = Регистр.Продажи.Покупатель;
   |ПродСтоимость = Регистр.Продажи.ПродСтоимость;
   |Себестоимость = Регистр.Продажи.Себестоимость;
   |ТекущийДокумент = Регистр.Продажи.ТекущийДокумент;
   |ВидПродажи = Регистр.Продажи.ТекущийДокумент.Реализация.ВидПродажи;
   |Наименование = Регистр.Продажи.ТекущийДокумент.Реализация.Договор.Наименование, Регистр.Продажи.ТекущийДокумент.ВозвратОтПокупателя.Договор.Наименование;
   |Функция ПродСтоимостьСумма = Сумма(ПродСтоимость);
   |Функция СебестоимостьСумма = Сумма(Себестоимость);
   |Группировка Покупатель упорядочить по Покупатель.Наименование;
   |Группировка ТекущийДокумент;
   |Условие(СокрЛП(Наименование) = СокрЛП(ВыбВидПродажи.Идентификатор()));
   |"//}}ЗАПРОС

заработало
11 andrewks
 
28.11.11
22:15
бедные бухи...
12 GStiv
 
28.11.11
22:33
(11) При выбранном виде продажи отличном от реализация создается автоматически одноименный договор, какое более красивое решение Вы бы мне посоветовали, перелопачивать регистр, изменять возврат от покупателя, к сожалению около 500 документов в день, база файловая, нужно максимально работающее решение, где мньше всего реквизитов, если предположим я добавлю реквизит в документ возрата, и он соответсвенно заполнится при вводе на основании, а затем поменяют в реализации то мы получим тот же результат, что и по наименованию договора. так если нет разницы зачем делать больше
13 andrewks
 
28.11.11
23:46
(12) не хотелось бы нарушать твою идиллию, но ты бухам такой костыль вставил во взаиморасчёты, что вазелин можно и не вымолить.

лучше бы через внешнюю функцию сделал, тем паче запрос всё равно получился тормозной
14 GStiv
 
29.11.11
08:18
(13) Я понял, там взаиморасчетов не будет эти виды продаж бонусные для списания товара, в бухгалтерию они не идут
Ошибка? Это не ошибка, это системная функция.