Имя: Пароль:
1C
1С v8
Нужны советы по запросу.
0 Boudybuilder
 
13.11.12
17:55
ВЫБРАТЬ
   Продажи.Номенклатура,
   ФанУстановкаВознагражденийЗаПродажиСрезПоследних.ВидНачисления,
   ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Процент,
   ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Номенклатура КАК Номенклатура1
ИЗ
   РегистрНакопления.Продажи КАК Продажи
       ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ФанУстановкаВознагражденийЗаПродажи.СрезПоследних КАК ФанУстановкаВознагражденийЗаПродажиСрезПоследних
       ПО Продажи.Период > ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Период
ГДЕ
   Продажи.Период МЕЖДУ &Нач И &Кон

УПОРЯДОЧИТЬ ПО
   Продажи.Период



Оно мне таким образом ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Процент показывает только реально последние. А мне ж тут надо чтобы соединило каждый последний на период записи в продаже.
1 shuhard
 
13.11.12
17:56
(0) будь мужиком
найди статья "Срез последних на каждую дату"
2 Boudybuilder
 
13.11.12
17:56
Вот. И еще. Мне нужно отобрать , чтобы показывало записи только те где Продажи.Номенклатура В ИЕРАРХИИ ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Номенклатура.
Пробовал , но не получается...
3 riv40rus
 
13.11.12
17:57
(1) +1 только хотел написать
4 Boudybuilder
 
13.11.12
18:03
Ок , буду разбираться. А с этим как быть?
5 Boudybuilder
 
13.11.12
18:03
(2) ???
6 Classic
 
13.11.12
18:08
Никак
7 GANR
 
13.11.12
18:10
(0) Это делается так (рекомендую см. sql-ex.ru):

1. Получить из регистра сведений ФанУстановкаВознагражденийЗаПродажи таблицу вида

ДатаНач        ДатаКон      изм1    Изм2.... рес1
01.01.0001     01.03.2001   и11     и12  .... р1n
02.03.2001     21.03.2001   и21     и22  .... р1n
22.03.2001     28.03.2001   и31     и32  .... р1n
29.03.2001     31.05.2001   и41     и42  .... р1n
29.03.2001     31.05.2001   и51     и52  .... р1n

Это делается так:
1.1 Отсортировать записи РС по периоду и пронумеровать 1..M
1.2 Выгрузить 1.1 во временную таблицу и соединить саму с собой ЛЕВЫМ соединением по условию ВТ1.НомерПП - 1 = ВТ1.НомерПП
1.3. Вынуть из 1.2 все необходимые поля таблицы п.1 (см. консоль)

2. Соединить п.1 с таблицей Продажи по условию
Продажи.Период МЕЖДУ (п.1).ДатаНач И (п.1).ДатаКон

(6) Запрос получится мозгодробильный, но это РЕШАЕМО (сам решал - знаю точно).
8 GANR
 
13.11.12
18:11
+(7) >29.03.2001     31.05.2001   и51     и52  .... р1n
- ошибочная строка
9 Boudybuilder
 
13.11.12
18:15
Как это никак?
Если я группе присвоил какое то значение в регистре сведений. То как выбрать номенклатуру , которая в иерархии этой группы?
10 Boudybuilder
 
13.11.12
18:15
Универсальный отчет же это делает как то...
11 GANR
 
13.11.12
18:15
(9) См. (7). Знаешь как запросом пронумеровать записи?
12 GANR
 
13.11.12
18:19
+(11) Т. е. (п. 1.1) из (7)

НомерПП       Период    Изм     Рес
1       01.01.2001       И1     Р1
2       05.02.2001       И2     Р2
3       03.03.2001       И3     Р3
...
M       08.05.2010       ИM     РM

Знаешь как это делается?
13 GANR
 
13.11.12
18:21
+(7) ВТ1.НомерПП - 1 = ВТ2.НомерПП - ошибка там
ВТ1 и ВТ2 - обращение к одной и той-же врем. таблице вида (12)
14 GANR
 
13.11.12
18:22
(0) Понятно что-нибудь из сказанного GANR?
15 Aprobator
 
13.11.12
18:24
СКД. В запросе я такое писать уже обленился.
16 GANR
 
13.11.12
18:25
(15) Тьху-ё про Хрусталёву-то я и забыл.
17 Classic
 
13.11.12
18:39
(10)
Что он делает? В общем случае ты по иерархии ничего не соединишь. В частном - используя (.Родитель = ) ИЛИ (Родитель.Родитель = ) ИЛИ .....
В СКД можно сделать разными наборами данных. В запросе - нет
18 Boudybuilder
 
13.11.12
21:52
(17) Так (.Родитель.Родитель) не конает. Это ж точно знать надо сколько уровней иерархии... Так ведь?

Например есть так
Мобилки/Сертефицированные/Нокия/
Мобилки/Сертефицированные/Самсунг/
Мобилки/Сертефицированные/Флай/

На группу мобилки я, например, в регистре ставлю ставлю 5%.
Тоесть если менеджер продает какой то товар из данной группы , то ему начисляется 5% от продажи. Но подгруппа  Флай у меня уже 6%. Так что за все флаи он получает соответственно. Это все записано в регистре сведений.

Как мне теперь получать процент по товарам находящихся в группах?
19 Boudybuilder
 
14.11.12
13:37
(18) На это ответа нету?





Еще один вопрос.
Вот в док начисления в ТЧ заполняю все документы продажи за текущий месяц. Через какое то время еще раз за тот же месяц делаю заполнение , но заполняет и те что имеются в предыдущем доке. Как лучше проверять были ли уже расчеты по тех доках или нет?

Я думал что буду получать все доки за период связывать их по периоду с доками из ТЧ в доках Начисления , и фильтровать , тоесть если имеется в предыдущих доках , то не заполнять.

Правильно ли это?
В типовых как то начисление зарплаты за период если начислено , то в еще одном доке за тот же период начисляться уже не будет...
20 Boudybuilder
 
14.11.12
13:39
Тут прикол в том , что если док не проведен?
А просто записан. То доки же в ТЧ все равно будут. И их в новый док не заполнит. А потом я этот док проведу , и начисления запишуться еще раз. В таком случае надо будет и при проведении проверять не имеются ли эти начисления в других ТЧ.
21 Boudybuilder
 
14.11.12
14:02
(19) Реализовал выборкой , хотя , можно было и запросиком.
Как такое запросом сделать?

       //Проверяем нет ли уже зарегистрированных строк
       Если Выборка.Регистратор <> Выборка.Документ Тогда
           НС = Сервис.Добавить();
           НС.Сотрудник = Выборка.Сотрудник;
           НС.Показатель= Начислено;
           НС.Документ  = Выборка.Регистратор;
       КонецЕсли;
22 Boudybuilder
 
14.11.12
14:49
Тут то же самое что и в (19)


ВЫБРАТЬ
   ДокСервис.НомерСтроки КАК ДокНомСтроки,
   ДокСервис.Ссылка КАК Док,
   ДокСервис.Документ КАК ДокДокумент,
   СписокСервис.Документ КАК СписокДокумент,
   СписокСервис.Ссылка КАК СписокДок
ИЗ
   Документ.ФанНачислениеЗароботнойПлаты.Сервис КАК СписокСервис
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ФанНачислениеЗароботнойПлаты.Сервис КАК ДокСервис
       ПО СписокСервис.Документ = ДокСервис.Документ
ГДЕ
   ДокСервис.Ссылка = &Ссылка



Как отобрать только те где СписокСервис.Документ <> ДокСервис.Документ
23 Boudybuilder
 
14.11.12
14:49
?????????????????????????????????
24 Boudybuilder
 
14.11.12
14:50
Не хочется выборкой делать...
25 Boudybuilder
 
25.11.12
22:15
ВЫБРАТЬ
   ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Номенклатура,
   ФанУстановкаВознагражденийЗаПродажиСрезПоследних.ВидНачисления,
   ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Процент,
   ФанУстановкаВознагражденийЗаПродажиСрезПоследних.ТребуемоеКоличество,
   ОтчетОРозничныхПродажахТовары.Номенклатура КАК Номенклатура1
ИЗ
   РегистрСведений.ФанУстановкаВознагражденийЗаПродажи.СрезПоследних КАК ФанУстановкаВознагражденийЗаПродажиСрезПоследних
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
       ПО ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Период < ОтчетОРозничныхПродажахТовары.Ссылка.Дата
           И (ОтчетОРозничныхПродажахТовары.Номенклатура.Родитель = ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Номенклатура
               ИЛИ ОтчетОРозничныхПродажахТовары.Номенклатура.Родитель.Родитель = ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Номенклатура
               ИЛИ ОтчетОРозничныхПродажахТовары.Номенклатура.Родитель.Родитель.Родитель = ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Номенклатура
               ИЛИ ОтчетОРозничныхПродажахТовары.Номенклатура.Родитель.Родитель.Родитель.Родитель = ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Номенклатура
               ИЛИ ОтчетОРозничныхПродажахТовары.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель = ФанУстановкаВознагражденийЗаПродажиСрезПоследних.Номенклатура)


Если так иерархию выбирать?
26 Boudybuilder
 
25.11.12
23:54
Вобщето работает. Но тут такая ситуация.

Если на верхнем уровне группы я поставлю значение одно а на нижнем еще одно то надо чтобы выбрало только нижнее.

Например справочник таков:

АвтоЗвук
 - Колонки
 - Магнитофоны
 - ФМ-модуляторы


На атвтозвук я ставлю 5% вознаграждения за продажи , что распространиЦЦа на все вложеные элементы. Но на колонки я хочу поставить больший или меньший процент , например 7%. Тогда надо чтобы  элементы в автозвук имели все 5 , а все что в Колонки - 7 . Как быть?
Вложенный запрос и групировку по родителю максимум или как ?
27 Boudybuilder
 
26.11.12
00:22
Вобщем как получить самого нижнего родителя?
28 Aprobator
 
26.11.12
10:17
Итоги по иерархии вроде в универсальном то. Как то так. А вообще получай родителя вне запроса.
29 Boudybuilder
 
26.11.12
18:07
Это пипец какойто , уже второй день не могу решить это (26)!!!!