Имя: Пароль:
1C
 
Народ, подскажите как сделать учет по декадам? В декаде 10 дней месяца
0 Gamma
 
20.01.05
07:15
Народ, подскажите как сделать учет по декадам? Декада должна быть забита жестко, то есть при открытии документа выставлялся период выбранной декады. Если 1 то с 1 по 10,
2 - с 11-20
3 - с 21-30 (31)
1 Де Лопа де Вега
 
20.01.05
07:21
Учет чего?
2 427
 
20.01.05
07:50
Яйценоскость бегемотов согласно ГОСТу учитывается в дюжинах дней - декады не покатят.
3 Gamma
 
20.01.05
08:35
Для таксопрака нужно написать прогу, в которой учитывались бы деньги водителей: например документ активен на 1 декаду месяца(с 1 по 10 число) в нем в табличную часть каждой строкой заносится каждый
4 Gamma
 
20.01.05
08:39
Для таксопрака нужно написать прогу, в которой учитывались бы деньги водителей: например документ активен на 1 декаду месяца(с 1 по 10 число) в нем в табличную часть каждой строкой заносится каждый день и движения денег, то есть водитель принес 5 тысяч и говорит - 1000 на страховку, 1000 на патент, 1000 на ремонт и т.д. Как только декада закончилась документ не должен редактироваться. Декада принципиальна, до этого работали в проге (на FoxPro написана была) которая учитывала по декадам и сейчас хотят на 1С чтоб в том же стиле работала ...
5 tonus
 
20.01.05
08:54
(2) Однако, Вы язвите:))
6 SKrin
 
20.01.05
09:09
Короче, как я понял, смысл в том, что документ не должен редактироваться после истечения декады в которую он входит.
Напиши функцию, которая расчитывает номер декады исходя из рабочей даты
например глНомерДекады(РабочаяДата())=2
При открытии документа проверяй номера декад Даты документа и Рабочей даты, если они не равны, то запрещай редактирование документа.
НО при сравнении декад нужно учесть еще ситуацию когда месяц и год документа не сходится с месяцем и годом рабочей даты(номер декады может быть и одним).
7 tonus
 
20.01.05
09:21
(+6)Самое простое - в обработке проведения документа написать нечто подобное:
       Д1=Строка(ДатаДок);
       Д2=Строка(ТекущаяДата());
       Д1=Лев(Д1,2);
       Д2=Лев(Д2,2);
       М1=Сред(Д1,4,2);
       М2=Сред(Д2,4,2);
       Д = Число(Д2) - Число(Д1);
       М = Число(М2) - Число(М1);
       Сообщить(Д);
       Сообщить(М);
       Если ДатаДок <> ТекущаяДата() Тогда
           Если (Д>10) или (М>0) Тогда
               глНеПроводить(Контекст, "Больше 10 дней");
               Возврат;
           КонецЕсли;
       КонецЕсли;
Должно работать:))
8 Diter
 
20.01.05
09:35
(1) А это имеет значение?
9 427
 
20.01.05
10:05
как (7) все сложно завернул... А если проще сделать?
10 Gamma
 
20.01.05
11:55
а как проще? если есть еще варианты, то поделитесь, плиззз!!!
11 Дурочка 1С
 
20.01.05
12:00
Правильно я понимаю задачу: определить дату, которая на 10 больше заданной?
Я люблю такие задачки. Можно я тоже поучаствую в решении?
12 Gamma
 
20.01.05
12:07
нет надо месяц поделить на 3 декады (по 10 дней) и на каждую декаду создавать документ, в котором будут указаны ежедневные затраты водителей таксопарка
13 Дурочка 1С
 
20.01.05
12:17
Может, не стоит заморачиваться с декадами в документах, а отобрать их в отчете?
В запросах есть такая группировка.
14 Gamma
 
20.01.05
12:32
не, в отчете не пойдет, там именно документ должен быть, как декада закончилась доступ на редактирование документа автоматичеки запрещается
15 Дурочка 1С
 
20.01.05
13:03
Зачем оператору знать что такое декада? Его дело по кнопкам шлепать, а не ребусы твои разгадывать.
Идея править один и тот же документ в течении 10 дней порочна по сути. Что мешает завести новый документ не дожидаясь окончания декады.
16 jbond
 
20.01.05
13:10
(7) - это неправильно. Все гораздо проще

Функция глДекадаМесяца (ДатаД)
 ДЧ = ДатаЧисло(ДатаД);
 если ДЧ <= 10 Тогда
  Возврат 1
 иначеЕсли ДЧ <= 20
  Возврат 2
 Иначе
  Возврат 3
 КонецЕсли
КонецФункции

еще если нужно глДекадаГода

Если рабочая дата и дата документа попадают в разные декады месяца - облом
17 jbond
 
20.01.05
13:14
По ходу надо заводить документ на одну дату для нескольких водителей.
Т.к. тебе нужно отражать все это дело в регистрах/счетах
18 Gamma
 
21.01.05
11:35
На одну дату не могу, клиент хочет на 10 дней, извращенцы они какие-то, так бы и не заморачивались, а тут ...
При этом надо чтоб конкретная сумма по конкретной дате хранились, чтоб потом построить отчеты - годовые и т. д.
19 jbond
 
21.01.05
11:42
В (17) это предусмотрено.
Документ да какую то дату, в табл части - Водитель, Сумма1,...

Запрет редактирования, когда мы не в текущей декаде.

Делать один документ сразу на 10 дней нельзя
20 tonus
 
21.01.05
11:43
(16) В принципе, правильно, только перегнула немного, у Вас и правда проще будет))
(18)А так что? Можно по каждому документу сумму смотреть. Какая "конкретная сумма"? Поподробней можно?
21 jbond
 
21.01.05
11:45
Наверное самое фиговое - это в запросе группировка по декадам.
Если они хотят отчет по декадам.

Один из выходов - группировка по дате начала декады

глНачалоДекады(ДатаДок)
22 jbond
 
21.01.05
11:46
(20) - простые решения приходят когда уже найдено более сложное
23 Gamma
 
21.01.05
11:59
я знаю что нельзя делать документ на 10 дней, но народ хочет так, я так думаю что есть какой-то вариант... Примерно табличная часть документа должена выглядеть так:
дата      Страховка  Патент  Профвзносы  Расход  итог   т.д.
10.01.05     1000     500        100       100   1500
11.01.05       0       0           0       100   -100
24 jbond
 
21.01.05
12:02
Тогда нужно делать обработку.
Там Таблица значений.
Полный гемморой однако.
25 jbond
 
21.01.05
12:06
Так. А на что журнал документов? Там табличную часть можно так сделать. Добавляй графы.

А по водилам учет нужен?
26 tonus
 
21.01.05
12:08
(23)А не проще им объяснить, что это по крайней мере не очень умно? Я про документ на 10 дней. Можт, им отчетик таким образом показывать: по одному сотру документ за день, потом написать отчетик, отбор за эти 10 дней + сотрудник. Или надо прям документ?
27 jbond
 
21.01.05
12:10
Нужно только на форме ЖД выбор декады сделать чтобы удобно было
Список значений: Год, Месяц, Декада. Или  Год, Декада
28 Gamma
 
21.01.05
12:14
и я про тоже, сначала сделали: одна дата - один документ, но так не хотят...просто жуть как требуют свои декады :(
29 tonus
 
21.01.05
12:15
В обработке можно печатую форму получить, пусть на бумажку любуются и представляют, что это и есть документ за 10 дней..
30 Gamma
 
21.01.05
12:18
уже говорили что это не грамотно, но привыкли в старой программе бабульки работать, но народу, который их проверяет не удобно от них принимать "простыни", отчеты печатают на матричном принтере формата А3!!! Вот и просят модернизировать, а при этом нам такой "гемморой"! Отделаться отчетиками и задавать там декадный период - не пойдет, у них до этого один документ содержал сразу 10 дней
31 jbond
 
21.01.05
12:20
Почему они не хотят один документ на один день?
Чем это их не устраивает?
Документы заполняются в конце декады на все десять дней или в течении всей декады?
32 tonus
 
21.01.05
12:20
До этого - на бумажном носителе или в экселе?
33 tonus
 
21.01.05
12:21
(+32)Или в какой другой программе автоматизированного учета?
34 Gamma
 
21.01.05
12:22
до этого в FoxPro все было реализовано
35 jbond
 
21.01.05
12:24
(24)
По водилам аналитика есть?

Они не хотят видеть увеличенный номер документа?
36 jbond
 
21.01.05
12:27
господа не в старой проограмме дело.

Жду ответа на (31), (35)
37 tonus
 
21.01.05
12:28
Не люблю фокс-про... Можт, они просто таким образом хотят реже подходить к компутеру: экономия времени: за 10 дней 1 док ввел и фсё...
А если в документе ввести поле "Дата", старушки его заполняют, но документ не проводят, потом, по истечении 10 дней проводят, в регистры - итоговая сумма. Но, млин, это глупо...
38 Gamma
 
21.01.05
12:28
ну вот привыкли, сидят и работают то с этой программой бабульки, а им какие-то изменения - это как ножом по сердцу...
поэтому и не хотят одним днем, в предыдущей программе открывается документ и там выбирается водитель и на него диспетчер - бабулька заносит в течение 10 дней его денежные взносы (страховка, патент и т.д.) и расходы, декада закончилась и документ для редактирования недоступен
а потом для формирования отчета выбирается декада или определенный период (месяц или год) и водитель и строится на внесенных наданных отчет...
39 tonus
 
21.01.05
12:30
Гамма, ответь, правда, сначала на вопросы бонда:)) Много вопросов, Предментная область не изучена, постановки задачи как таковой не видно, зато требования заказчиков яснее ясного: хотим, чтоб было как раньше, но новое...
40 Gamma
 
21.01.05
12:36
Почему они не хотят один документ на один день?
- Потому что говорят им принципиально делать все это в декаде, убедить делать документ одним днем не получилось, помешало человеческое упрямство  
Чем это их не устраивает?
- тем что им вроде так удобней, за 10 дней все разнес и сиди довольный
Документы заполняются в конце декады на все десять дней или в течении всей декады?
- Документы заполняются по мере появления денег, то есть водитель принес деньги, диспетчер открывает (если он в эту декаду еще не приносил денег) на него документ, или ищет уже на него созданный и заполняет, то есть принес тот 5000 и говорит 1000 на страховку, 1000 на расходы и т.д.
По водилам аналитика есть?
- Есть, по ним строятся отчеты за различные периоды
Они не хотят видеть увеличенный номер документа?
- думаю если им задать этот вопрос даже не сообразят о чем их спросили
41 tonus
 
21.01.05
12:40
О как. А глазками похлопать с умным видом? Вмиг бы передумали и сказали: "Решай, как тебе лучше":))
Хотя, имхо, если попыхтеть, то что-нить подобное сделать можно..
42 jbond
 
21.01.05
12:48
Ну в общем окончательный дианоз:

делается как в (24).
43 Gamma
 
21.01.05
12:54
ну так как решить такую проблему...
мне надо создавать документ на 10 дней на каждого водителя, распознавать каждый день декады и суммы, которые он приносил и показывать их в отчете по каждой декаде или дню или месяцу ...
44 tonus
 
21.01.05
12:55
Ладно, счаслива выполнить ТЗ, а я поехала в командировку на недельку, приеду - почитаю, что надумали:))
45 NS
 
21.01.05
12:56
(16)
Функция глДекадаМесяца (ДатаД)
ДЧ = ДатаЧисло(ДатаД);
возврат цел(ДЧ/3);
КонецФункции
46 NS
 
21.01.05
12:57
(16)
Функция глДекадаМесяца (ДатаД)
ДЧ = ДатаЧисло(ДатаД);
возврат цел((ДЧ+9)/10);
КонецФункции
47 jbond
 
21.01.05
12:57
Стучись в 236164082
48 tonus
 
21.01.05
12:58
Бонд, :)) Еще проще (45). Смотри, так и изначальную проблему легко решить..
49 NS
 
21.01.05
13:01
Гемор??? Где гемор... прямо в запросе легко получу декаду... Даже без справочника.
50 jbond
 
21.01.05
13:02
За плату бы выполил. За выходные. Я похожее делал.
51 Gamma
 
21.01.05
13:02
:) ладно, будем извращаться, что не сделаешь для народа ...
52 NS
 
21.01.05
13:04
Какие выходные?
Простейший способ - справочник - декады...
пола ДатаНач, ДатаКон, НомерОбщий, НомерВМесяце...
Обработка из шести строк для его заполнения...
Всё, проблема решена....
53 Gamma
 
21.01.05
13:08
предлагаешь делать декады через справочник?
54 NS
 
21.01.05
13:12
(53) А в чем-то проблемы?
55 Gamma
 
21.01.05
13:16
нет, такой вариант просто рассматривали ... забивали в справочнике декады, а потом в документе выдирали соответсвующую декаду, правда даже пытались автоматизировать процесс распознавания декады, что-то получалось, сейчас точно и не вспомню
56 jbond
 
21.01.05
13:16
1) Самый простой вариант без обработки:

Документ с реквизитами: Водитель, Сумма1, Сумма2,...

Отбор по Водителю. В журнале - реквизиты выбор декады и водителя.

Все.

2) С обработкой.

Если не устраивает (1):

Теже реквизиты для выбора Водителя,
Заполняется таблица значений. По документам из декады.
Скорее всего должны быть все даты из декады.

В конце редактирования - изменение документов + перепроведение

(1) проще (2) и универсальнее.

В запросе группировка по декаде (21)
57 NS
 
21.01.05
13:19
(55) Вручную декады в справочник забивали? Да вы больны...
58 NS
 
21.01.05
13:20
(56) И часто у тебя группировка по функции работает?
59 jbond
 
21.01.05
13:27
Блин запутался. Имел ввиду группировку по измерению регистра типа
Дата. А при проведении туда запсывается дата начала декада.
60 jbond
 
21.01.05
13:29
Думаю справочник декад не надо делать. Это надо тогда 3 справочника:
Годы, Месяцы, Декады. Каждый подчинен следующему.
61 jbond
 
21.01.05
13:30
точнее предыдущему
62 NS
 
21.01.05
13:30
(59) По справочнику (измерение) даже быстрее будет работать.
Только с фильтром (условием) похуже будет...
63 Gamma
 
21.01.05
13:31
зачем в ручную.....!!!!
64 NS
 
21.01.05
13:32
(60) не понимаю, зачем три? Справочник на 360 элементов - забиты декады на 10 лет вперед.
65 jbond
 
21.01.05
13:32
Группировка по функции - это фича FireBird
66 NS
 
21.01.05
13:33
(63) А зачем декаду распозновать? В ней же реквизиты есть, я же нарисовал.
А в наименование - периодстр()
67 jbond
 
21.01.05
13:38
Специально по требованию Gamma и школьников в запросах 1с должны ввести Группировка Декада, Группировка Четверть, Группировка Полугодие