Имя: Пароль:
1C
1С v8
Документ без регистратора
0 shira84
 
21.10.13
09:35
Доброе утро форумчане! Помогите. В рознице 2.0 есть документ "кассовая смена", в котором есть время открытия смены и закрытия. По регистрам документ не проходит. Требуется сделать отчет (желательно СКД) опозданий сотрудников. В течении дня смена может быть открыта закрыта хоть 20 раз, поэтому надо вытащить первое и последнее время за день. Не требуется готовый отчет, просто киньте мысль кто как бы сделал, пока ума не дам с чего начать. Спасибо
1 mzelensky
 
21.10.13
09:37
Максимальная и минимальная дата в пределах дня
2 Cube
 
21.10.13
09:37
(0) "просто киньте мысль кто как бы сделал"
Не фиксировать опоздания.
3 Галахад
 
гуру
21.10.13
09:37
А руками дату нельзя поменять?
4 mzelensky
 
21.10.13
09:38
(0) "Документ без регистратора" - у документа в принципе НЕТ регистратора!
5 shira84
 
21.10.13
09:38
(3) неа низя
6 mzelensky
 
21.10.13
09:39
(5) это где написано?
7 shira84
 
21.10.13
09:39
(1) период отчета может быть месяц, это каждый день перебирать?
8 shira84
 
21.10.13
09:41
(6)  чисто физически невозможно, поле неактивно, можно конечно поменять дату на компе и открыть смену, но будем считать,что продавцы пока об этом не знают)))
9 DeniIT
 
21.10.13
09:41
(0) я бы новый регистр наверно сделал, добавлял в него открытую смену, при следующем открытии проверял нет ли открытой сегодняшним днем смены и при закрытии смены проверять так же нет ли закрытой смены и если есть удалить и вписывать новую. По этому регистру уже делать отчет. Ну как то так в общем
10 mzelensky
 
21.10.13
09:42
(7) а тебя устроит минимальная и максимальная дата в пределах месяца??? Думаю что нет, поэтому нужно обрабатывать каждый день. Просто делать это можно по разному.
11 DeniIT
 
21.10.13
09:42
(9) ИМХО
12 shira84
 
21.10.13
09:44
у базы 20 подчиненных узлов, и при изменении конфы вылазит Недостаточно памяти или Версия текущей инф базы отличается...
С этим можно бороться, но ...
13 mzelensky
 
21.10.13
09:44
(8) Главное не показывай им "групповую обработку справочников и документов" :)
14 shira84
 
21.10.13
09:44
(10)  через СКД это можно?
15 shira84
 
21.10.13
09:45
(13)  )))
16 mzelensky
 
21.10.13
09:45
(12) :) забавный пост. А ты там кто (на этой фирме), программист, бухгалтер, директор или может уборщица?
17 mzelensky
 
21.10.13
09:46
(14) Если с запросами дружишь, то можно.
18 shira84
 
21.10.13
09:47
(16) да не я там подрабатываю, начинающий программист 1с
19 shira84
 
21.10.13
09:49
(17) через СКД я так думаю наврядли такое собрать
20 1dvd
 
21.10.13
09:49
(19) неправильно думаешь
21 shira84
 
21.10.13
09:50
просто управляемые формы на дух не переношу. извиняюсь если кого обидел
22 1dvd
 
21.10.13
09:51
(21) а я скд не переношу, но тем не менее
23 hhhh
 
21.10.13
09:51
(21) СКД было еще в 8.1, когда про управляемые формы даже сны никому не снились.
24 shira84
 
21.10.13
09:51
(20)  а как можно перебрать дни без периодического регистра???
25 1dvd
 
21.10.13
09:52
(24) обращайся к табличке документа
26 shira84
 
21.10.13
09:53
(25)  у него нет ТЧ, каждое открытие/ закрытие это новый документ.
27 1dvd
 
21.10.13
09:55
(26) я не говорю, про ТЧ. Я говорю про таблицу шапок:
ВЫБРАТЬ
    ДатаЗоступа,
    ДатаВыступа
ИЗ
    Документ.КассоваяСмена
28 shira84
 
21.10.13
09:57
похоже прийдется без СКД, Цикл начало ПО конец, а в теле уже выборка на max/min
29 shira84
 
21.10.13
09:59
(27) ГДЕ Периодичность = &ОдинДень ???
30 1dvd
 
21.10.13
10:01
(29) не, Сгруппировать надо по НАЧАЛОПЕРИОДА(КассоваяСмена.Дата, ДЕНЬ)
31 1dvd
 
21.10.13
10:02
ну, и
    МИНИМУМ(ДатаЗоступа) КАК ДатаЗоступа,
    МАКСИМУМ(ДатаВыступа) КАК ДатаВыступа
32 shira84
 
21.10.13
10:04
(30)  вововово кажется я тебя начинаю понимать
33 shira84
 
21.10.13
10:04
(30)  спасибо ща попробую
34 User_Agronom
 
21.10.13
10:06
(30) И я в ту же сторону думаю.
35 shira84
 
21.10.13
11:04
ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(КассоваяСмена.Дата, ДЕНЬ) КАК День,
    КассоваяСмена.Магазин
ПОМЕСТИТЬ ВТГруппировка
ИЗ
    Документ.КассоваяСмена КАК КассоваяСмена

СГРУППИРОВАТЬ ПО
    КассоваяСмена.Магазин,
    НАЧАЛОПЕРИОДА(КассоваяСмена.Дата, ДЕНЬ)
;

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

СГРУППИРОВАТЬ ПО
    ВТГруппировка.День,
    ВТГруппировка.Магазин

УПОРЯДОЧИТЬ ПО
    День,
    Магазин

Вот так вот. все сработало. Всем спасибо, 1dvd спасибо за идею.
36 Sabbath
 
21.10.13
11:06
(4) у документа есть регистратор - оператор 1С!
37 shira84
 
21.10.13
11:08
(31) если писать проста максимум/минимум выходит макс и мин за весь период отчета, поэтому добавил еще выбор когда (сравнение по дате)
38 shira84
 
21.10.13
11:10
(36) наверное имелось в виду регистр а не регистратор