Имя: Пароль:
1C
1С v8
Задача с периодичностью
,
0 mirina313
 
17.07.19
08:31
Есть два декоративных дерева.
Дерево1 требует 3л полива каждые 5 дней, а Дерево2 требует 2л полива каждые 3 дня.
Так вот, нужно чтобы в печатном виде выводились дни когда эти деревья нужно полить, но в определенном периоде(будущем). Допустим с 1 до 10 августа.
Направьте мысли, с помощью каких инструментов можно это реализовать?
1 Волшебник
 
17.07.19
08:33
нужна дата старта
далее просто цикл по дням
результат расчёта сохранить в регистр сведений КалендарьПолива
2 Mukrob
 
17.07.19
08:34
период должен быть, иначе задача не имеет конца и программа просто зависнет считать, еще нужна дата последнего полива, и от нее уже считать график.
3 mirina313
 
17.07.19
09:00
(1) Только в какой момент заполнять Календарь циклом?
Я к тому что период полива может изменяться, и каждый раз будет регистр перезаписывать если считать от даты старта?
4 CepeLLlka
 
17.07.19
09:01
(3)Ну делай как графики работы к примеру, на месяц, считай от начала месяца и перезаписывай так-же.
5 CepeLLlka
 
17.07.19
09:09
(0)А чё за деревья то? :)
6 RomaH
 
naïve
17.07.19
09:13
нужная дата старта
далее порядковый номер дня от даты старта
если остаток от деления = 0 - нужный день
7 sqr4
 
17.07.19
09:17
8 breezee
 
17.07.19
09:36
Хотел пошутить и вытянуть из производственного календаря даты, которые кратны датам полива, но споткнулся на том что не могу получить остаток от деления в запросе. Я всегда думал, что можно получить используя "КАК ЧИСЛО(0, 1)", но платформа ругается на такой синтаксис. Может я чего-то не так делаю? Вот весь запроc:
На УПП работает
ВЫБРАТЬ
    "Дер1" КАК Дер,
    3 КАК КолДн,
    10 КАК КолЛит
ПОМЕСТИТЬ ффф

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Дер2",
    5,
    15
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ффф.Дер,
    ффф.КолДн,
    ффф.КолЛит,
    ВЫРАЗИТЬ(ДЕНЬ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) / ффф.КолДн КАК ЧИСЛО(0, 1)) КАК Поле1,
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ ффф2
ИЗ
    ффф КАК ффф,
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ффф2.Дер,
    ффф2.КолДн,
    ффф2.КолЛит,
    ффф2.Поле1,
    ффф2.ДатаКалендаря
ИЗ
    ффф2 КАК ффф2
9 catena
 
17.07.19
09:42
(8)Выбор когда РазностьДат(ДатаКалендаря,тз.ДатаНач, день)/тз.КолДн =Выразить(РазностьДат(ДатаКалендаря,тз.ДатаНач, день)/тз.КолДн как число(15,0))
тогда Истина иначе ложь конец как Полив
10 Консультант Баранов
 
17.07.19
10:13
(2) Зачем заполнять календарь. Просто цикл по датам с вычислением разницы дат. И регистр сведений с какого числа, у какого дерева какой график.
11 mirina313
 
17.07.19
10:20
(10) а регистр сведений заполнять в какой момент?
12 uno-group
 
17.07.19
10:22
(11) ДЫк вам регистр заполнить или только напечатать.
13 Волшебник
 
17.07.19
10:23
(11) по кнопке Заполнить на год вперёд
14 Консультант Баранов
 
17.07.19
10:28
(11) По факту и заполнять.

Допустим
Измерения
Период: 17.07.2019
Объект: Дерево
Ресурсы
Периодичность дней полива: 5
Объм: 3 литров
Дата начала полива: 18.07.2019

Допустим дата 20 число. Получаешь последнюю запись для этого числа и дерева.
А дальше арифметика. Если ( 20.07.2018 - 18.07.2019/ 5) = 20.07.2018 - 18.07.2019/ 5 тогда прибавляем литры.
15 mirina313
 
17.07.19
10:34
(12) только напечатать
16 uno-group
 
17.07.19
10:35
(13) Если это действительно растения то там не может быть круглогодично одинаковый полив. Летом чаше зимой реже.
(15) если только печатать то зачем регистр заполнять?
17 olegves
 
17.07.19
10:40
(15) запросить дату начала полива и период для печати 0 дальше расчет и печать
18 mirina313
 
17.07.19
10:41
(16) Нет, не только напечатать.
Нужно и без печатной формы иметь возможность посмотреть.
Значит нужен регистр, все таки
19 Garykom
 
гуру
17.07.19
10:42
Вы издеваетесь? Школьная арифметика и знания как получить число дней между датами в 1С.
20 olegves
 
17.07.19
10:47
(18) тогда нужен документ для определения даты начала полива и периодичности, который будет двигать периодический регистр сведений и обработка (или функция в ОМ) для расчета и печати
21 Garykom
 
гуру
17.07.19
11:13
(20) А если платеж тьфу полив пропустили по плану? Куда писать по графику и чем?
22 RomaH
 
naïve
17.07.19
11:15
(21) нужен документ отражающий факт полива

хранить график не надо - это расчетная часть
хранить только в случае если расчет будет долгим
хранить только дату последнего полива
23 olegves
 
17.07.19
11:16
(21) в регистр писать только видРастения, период полива и объем полива на дату Документа. График полива считает обработка
24 mirina313
 
17.07.19
11:20
(22) Например, при нажатии кнопки я заполняю "календарьполива" по указанному периоду (допустим с 20190101 по 2019020) и получаю печатную форму.

Опять же, если я захочу просто просмотреть график без печати, мне нужно отдельной обработкой заполнить его на год/месяц?)
А если добавится растение или помрет опять же обновлять весь график полива.
25 Garykom
 
гуру
17.07.19
11:26
(22) А как ты количество дней просрочки посчитаешь? И пени поливальщику выставишь? Кто за полив ответственный тоже надо хранить и созаемщиков тьфу заместителей поливальщиков.
26 RomaH
 
naïve
17.07.19
11:26
(24) что значит "просто посмотреть"?
27 mirina313
 
17.07.19
11:27
(26) вывести отчет, например
28 RomaH
 
naïve
17.07.19
11:28
(27) так весь "график" расчетный
нужная только дата отсчета и периодичность
29 Garykom
 
гуру
17.07.19
11:29
(28) Как минимум еще календарь рабочих/выходных дней нужен )) Поливы переносить )))
30 Обработка
 
17.07.19
11:30
(0) Не пудри нам мозг.
Возьми тетрадку и расчерти график квадратики, раскрась и иди поливать деревья иначе высохнут. )))