Имя: Пароль:
1C
1С v8
остаток и документ
0 SergeyGr
 
23.05.13
13:51
Есть список контрагентов.
Нужно сделать следующее:
1. по каждому из контрагентов проверить ОСТАТОК на некоторую дату на сч.62;
2.если остаток есть, то найти ПОСЛЕДНИЙ документ, который вызвал движение по этому счету.

Можно ли такое сделать одним запросом ?

Спасибо
1 Godofsin
 
23.05.13
13:52
Можно
2 Пират
 
23.05.13
13:53
Имеющие Сумма(КоличествоОстаток) > 0
Максимум(Регистратор)
3 Defender aka LINN
 
23.05.13
13:56
(2) Максимум(Регистратор)
А потом такие люди искренне возмущаются, когда им предлагают тестовое задание :)
4 Пират
 
23.05.13
13:58
(3) что вам не нравится в функции Максимум()?
Понаберутся стереотипов и боятся шаг влево-вправо сделать, да еще и других под свою дудку прогибают...
5 zippygrill
 
23.05.13
13:58
(2) сначало по Дате и потом по МоментуВремени
6 Defender aka LINN
 
23.05.13
13:59
(4) То, что она вернет максимальную ссылку, а не последний документ.
7 Пират
 
23.05.13
14:00
(6) о-о-о, мля... это писец какая принципиальная разница...
8 Пират
 
23.05.13
14:00
+(7) особенно если не позволят задним числом документы фигачить
9 Defender aka LINN
 
23.05.13
14:01
(7) Ну, вообще-то это 2 совершенно разных понятия, которые даже не родственники.
10 Пират
 
23.05.13
14:01
(9) совмести их у себя в БД и не клюй мозги такими вопросами на собеседовании :)
11 SergeyGr
 
23.05.13
14:02
Я плохо знаю 1С - не могли бы Вы набросать текст запроса.  :-))
12 Пират
 
23.05.13
14:03
(11) за 300 р. напишу
13 Defender aka LINN
 
23.05.13
14:04
(10) Как это "не клюй"? Последний документ в мае, а твой запрос клятвенно уверяет, что в январе 2004г. Это, по-твоему, нормальная ситуация?
З.Ы. Я собеседования не провожу, если что, там Лефмихалыч развлекается
14 Пират
 
23.05.13
14:12
(13) тогда без измерения "ДокументЗадолженности" ты никак не получишь документ, по которому задолженность.
15 Defender aka LINN
 
23.05.13
14:13
(14) Это ты темой сейчас промахнулся?
16 Пират
 
23.05.13
14:13
(13) предлагая Максимум(Регистратор), предполагал, что остатки по документу не хранятся. Так вопрос в (0) задан.
17 Ненавижу 1С
 
гуру
23.05.13
14:14
(16) ты хоть бы не позорился про "Максимум(Регистратор)"
18 Пират
 
23.05.13
14:14
(15) Ну научи меня, как ты получишь остаток на документ, если у тебя остатки по документам не учитываются?

Только не надо мне рассказывать про моменты времени и позицию регистратора...
19 Пират
 
23.05.13
14:15
(17) сам не позорься
20 Defender aka LINN
 
23.05.13
14:15
(16) Гм... Я в тупике. Копировать текст из (0) бесполезно, а как тебе еще объяснить, что нужен ПОСЛЕДНИЙ документ, я не представляю.
21 Defender aka LINN
 
23.05.13
14:15
(18) Где ты увидел про "остаток на документ"?
22 Пират
 
23.05.13
14:16
(20) Чем Максимум(Регистратор) не Последний, если не разрешено новые документы задним числом фигачить?
23 Defender aka LINN
 
23.05.13
14:17
(22) Тем, что не последний, блеать.
Последний - это Максимум(Дата) и Максимум(Ссылка). Одновременно.
24 Пират
 
23.05.13
14:20
(23) ну делай Максимум(Дата), Максимум(Ссылка). Песец какой секрет и офигеть какое тайное знание.

Максимум(Регистратор) - максимальный идентификатор из ссылки. Т.к. нумерация идентификаторов идет по возрастанию. То вернет последний введенный документ.
25 Ненавижу 1С
 
гуру
23.05.13
14:21
(24) "Т.к. нумерация идентификаторов идет по возрастанию" - это чушь
26 Пират
 
23.05.13
14:21
+(24) так что что в этой ситуации считать ПОСЛЕДНИМ - еще вопрос
27 Пират
 
23.05.13
14:22
(25) Максимум(СписокДокументов.ДокументСсылка) не возвращает последний физически введенный документ?
28 Шапокляк
 
23.05.13
14:23
(24) Никогда не делал запрос с сортировкой по регистратору по возрастанию? Сделай и удивись.
29 Ненавижу 1С
 
гуру
23.05.13
14:25
(27) нет
30 Defender aka LINN
 
23.05.13
14:34
(24) Получишь 2 поля: 23.05.2013 и "Документ такой-то №123 от 03.02.2004". И?
31 Ненавижу 1С
 
гуру
23.05.13
14:37
ВЫБРАТЬ
   ХозрасчетныйОстатки.Субконто1,
   ХозрасчетныйОбороты.Регистратор
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&Счет62), &Контрагенты, ) КАК ХозрасчетныйОстатки
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, Счет В ИЕРАРХИИ (&Счет62), &Контрагенты, , , ) КАК ХозрасчетныйОбороты
       ПО ХозрасчетныйОстатки.Субконто1 = ХозрасчетныйОбороты.Субконто1
ГДЕ
   ХозрасчетныйОбороты.Регистратор В
           (ВЫБРАТЬ ПЕРВЫЕ 1
               РегистрБухгалтерии.Хозрасчетный.Обороты.Регистратор
           ИЗ
               РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, Счет В ИЕРАРХИИ (&Счет62), &Контрагенты, , , )
           ГДЕ
               РегистрБухгалтерии.Хозрасчетный.Обороты.Субконто1 = ХозрасчетныйОбороты.Субконто1
           УПОРЯДОЧИТЬ ПО
               РегистрБухгалтерии.Хозрасчетный.Обороты.Регистратор.МоментВремени УБЫВ)
32 Defender aka LINN
 
23.05.13
14:46
(31) Жесть какая
33 Ненавижу 1С
 
гуру
23.05.13
14:52
(32) да, лень было нормально получать максимум по моменту времени
34 Пират
 
23.05.13
15:11
(29) Мля, один чувак в свое время убедил меня, что Максимум(ДокументСписок.Ссылка) возвращает последний физически введенный документ (по идентификаторам работает типа).

А что тогда возвращает такой Максимум()? Неужели по системному представлению работает?
35 Ненавижу 1С
 
гуру
23.05.13
15:14
(34) это скорее всего верно если документы вводятся с одного компьютера
и потом, где в БП не вводят документы задним числом?
36 Пират
 
23.05.13
15:18
(35) в коллективной разработке на 8.1 под SQL, в году 2008-м спокойно пользовались таким максимумом и глюков не было.

Поменяли принцип назначения идентификаторов для ссылок?
37 Пират
 
23.05.13
15:20
+(36) Помню даже в методическом пособии на 8.1 по оперативному учету был пример списания остатков по FIFO, где в запросе применялся Максимум по ссылке на документ.

Поясни,плиз, или сам не знаешь?
38 Ненавижу 1С
 
гуру
23.05.13
15:25
(37) мои доводы:
1. это не документировано
2. возможен ввод задним числом
3. возможен обмен данными с другими базами
39 Пират
 
23.05.13
15:27
(38) ну да, с логикой согласен.

Значит, все-таки идентификаторы шерстит :)
40 Пират
 
23.05.13
15:28
(38) по поводу недокументированности я бы поспорил.
Т.к. это было в методичке официального сертифицированного курса по 8.1
41 Ненавижу 1С
 
гуру
23.05.13
15:31
(40) даже в СП случались ошибки
42 Defender aka LINN
 
23.05.13
15:43
(34) "А что тогда возвращает такой Максимум()" - GUID - это число. Возвращается ссылка с макс. ГУИДом. Но при этом еще имеет значение тип ссылки, т.к. тип - тоже ГУИД, на самом деле. Максимум(Ссылка) вернет последний документ в секунде и будет прав. Если промежуток времени больше 1 секунды, то уже никто никому ничего не должен.
43 Пират
 
23.05.13
15:44
(42) судя по ответам @Ненавижу 1С, твои знания тоже устарели и тебя на работу без теста не возьмут.
44 DexterMorgan
 
23.05.13
15:45
Максимум(Ссылка) - не катит, последний введеный в базе документ <> последний документ по дате этого контрагента.
Если даты документов не могут совпадать то делал как то так:

ВЫБРАТЬ
   ПоступлениеТоваровУслуг.Ссылка,
   ВложенныйЗапрос.Контрагент,
   ВложенныйЗапрос.Дата
ИЗ
   (ВЫБРАТЬ
       МАКСИМУМ(ПоступлениеТоваровУслуг.Дата) КАК Дата,
       ПоступлениеТоваровУслуг.Контрагент КАК Контрагент
   ИЗ
       Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
   
   СГРУППИРОВАТЬ ПО
       ПоступлениеТоваровУслуг.Контрагент) КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
       ПО ВложенныйЗапрос.Дата = ПоступлениеТоваровУслуг.Дата
           И ВложенныйЗапрос.Контрагент = ПоступлениеТоваровУслуг.Контрагент
45 Пират
 
23.05.13
15:48
+(43) так что, прежде чем пальцы гнуть, послушал бы умных людей :)
46 Defender aka LINN
 
23.05.13
15:50
(43) И на основании чего сделан столь глубокомысленный вывод?
47 Пират
 
23.05.13
15:52
(46) внимательно почитай (38), подумай, а потом перечитай свой пост в (42)
48 Пират
 
23.05.13
15:54
+(47) особенно п.3 мне понравился
49 DexterMorgan
 
23.05.13
15:54
(47) Приведи этот пример из методички? НАсколько я помню везде упорядочивали по моменту времени, никакого "Максимум(ссылки)" там нет.
50 Ненавижу 1С
 
гуру
23.05.13
15:55
(44) неполный ответ, документы могут иметь одинаковую дату+время
51 Лефмихалыч
 
23.05.13
15:55
(37)  это в котором пособии?
52 Пират
 
23.05.13
15:56
(49) там измерение "партия" по максимуму выбиралась
53 Ненавижу 1С
 
гуру
23.05.13
15:56
(42) "вернет последний документ в секунде" - слишком много трактовок у этой фразы
54 DexterMorgan
 
23.05.13
15:56
(50) ну так я сделал же на этом акцент
55 Пират
 
23.05.13
15:57
(51) если память не изменяет, УЦ 3
56 Ненавижу 1С
 
гуру
23.05.13
15:57
(54) чукча не читатель ))
57 Пират
 
23.05.13
15:58
Интересно, принцип формирования GUID (внутреннего представления) у платформ 8.1 и 8.2 поменялся или тот же?
58 Лефмихалыч
 
23.05.13
15:59
(52) тьхе, чудак, этот максимум по ссылке был в итогах и выбирал он максимум из одинаковых ссылок. Нужен для формирования сообщения о превышении доступного остатка.
Садись, два.
С минусом
59 Пират
 
23.05.13
15:59
(58) скан давай
60 Лефмихалыч
 
23.05.13
16:00
(59) скан чего? Это ты скан давай - ты же пургу метешь. Не может в методичке ЦСО быть получения последнего документа путем Максимум(Ссылка).
61 DexterMorgan
 
23.05.13
16:00
(58) +100500, а никак не мог сообразить про что он)

(59) да точно!
62 Пират
 
23.05.13
16:01
+(59) без скана листа методички УЦ3 по 8.1 все, что ты написал - чиста треп.
63 Ненавижу 1С
 
гуру
23.05.13
16:02
(62) во дает, сам же начал про методичку
64 Пират
 
23.05.13
16:02
(60) Максимум(Партия) там была... Опять же, если память не изменяет.
65 DexterMorgan
 
23.05.13
16:03
Давайте голосовалку =)))

"может в методичке ЦСО быть получения последнего документа путем Максимум(Ссылка)?"

1. Да
2. Нет
66 DexterMorgan
 
23.05.13
16:04
(64) Только из одинаковых ссылок если
67 Пират
 
23.05.13
16:05
(66) да. Там был пример, работающий только с положительным остатком и в измерении "Партия" была только ПрихНакл
68 Лефмихалыч
 
23.05.13
16:06
(62) как раз наоборот - без скана ты трепло
69 Лефмихалыч
 
23.05.13
16:07
(64) была, но только в итогах
71 Лефмихалыч
 
23.05.13
16:08
+(69) утверждение основано на логике вещей и понимании того, что максимум от ссылки на документ - это не последний документ. Просто хотя бы потому, что понятия "последний документ" нет
72 DexterMorgan
 
23.05.13
16:09
(71) Можно так:
максимум от ссылки на документ - это не последний документ по дате
73 Пират
 
23.05.13
16:11
(71) надоело баян обсуждать, выше все написано
74 DexterMorgan
 
23.05.13
16:11
(73) Тебе привести пример когда возможно (72)? С чем ты споришь?
75 Пират
 
23.05.13
16:11
(72) и не последний документ по реквизиту ДатаВх :)
76 DexterMorgan
 
23.05.13
16:12
(75) Ладно, все понятно с тобой
77 Пират
 
23.05.13
16:12
(74) я не спорю. все уже выяснили. Ненавижу 1С привел жесткие аргументы.