Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Задача с периодичностью

Задача с периодичностью
Я
   mirina313
 
17.07.19 - 08:31
Есть два декоративных дерева.
Дерево1 требует 3л полива каждые 5 дней, а Дерево2 требует 2л полива каждые 3 дня.
Так вот, нужно чтобы в печатном виде выводились дни когда эти деревья нужно полить, но в определенном периоде(будущем). Допустим с 1 до 10 августа.
Направьте мысли, с помощью каких инструментов можно это реализовать?
 
 
   Волшебник
 
1 - 17.07.19 - 08:33
нужна дата старта
далее просто цикл по дням
результат расчёта сохранить в регистр сведений КалендарьПолива
   Mukrob
 
2 - 17.07.19 - 08:34
период должен быть, иначе задача не имеет конца и программа просто зависнет считать, еще нужна дата последнего полива, и от нее уже считать график.
   mirina313
 
3 - 17.07.19 - 09:00
(1) Только в какой момент заполнять Календарь циклом?
Я к тому что период полива может изменяться, и каждый раз будет регистр перезаписывать если считать от даты старта?
   CepeLLlka
 
4 - 17.07.19 - 09:01
(3)Ну делай как графики работы к примеру, на месяц, считай от начала месяца и перезаписывай так-же.
   CepeLLlka
 
5 - 17.07.19 - 09:09
(0)А чё за деревья то? :)
   RomaH
 
6 - 17.07.19 - 09:13
нужная дата старта
далее порядковый номер дня от даты старта
если остаток от деления = 0 - нужный день
   sqr4
 
7 - 17.07.19 - 09:17
   breezee
 
8 - 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
   catena
 
9 - 17.07.19 - 09:42
(8)Выбор когда РазностьДат(ДатаКалендаря,тз.ДатаНач, день)/тз.КолДн =Выразить(РазностьДат(ДатаКалендаря,тз.ДатаНач, день)/тз.КолДн как число(15,0))
тогда Истина иначе ложь конец как Полив
   Консультант Баранов
 
10 - 17.07.19 - 10:13
(2) Зачем заполнять календарь. Просто цикл по датам с вычислением разницы дат. И регистр сведений с какого числа, у какого дерева какой график.
   mirina313
 
11 - 17.07.19 - 10:20
(10) а регистр сведений заполнять в какой момент?
   uno-group
 
12 - 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 тогда прибавляем литры.
   mirina313
 
15 - 17.07.19 - 10:34
(12) только напечатать
   uno-group
 
16 - 17.07.19 - 10:35
(13) Если это действительно растения то там не может быть круглогодично одинаковый полив. Летом чаше зимой реже.
(15) если только печатать то зачем регистр заполнять?
   olegves
 
17 - 17.07.19 - 10:40
(15) запросить дату начала полива и период для печати 0 дальше расчет и печать
   mirina313
 
18 - 17.07.19 - 10:41
(16) Нет, не только напечатать.
Нужно и без печатной формы иметь возможность посмотреть.
Значит нужен регистр, все таки
   Garykom
 
19 - 17.07.19 - 10:42
Вы издеваетесь? Школьная арифметика и знания как получить число дней между датами в 1С.
   olegves
 
20 - 17.07.19 - 10:47
(18) тогда нужен документ для определения даты начала полива и периодичности, который будет двигать периодический регистр сведений и обработка (или функция в ОМ) для расчета и печати
   Garykom
 
21 - 17.07.19 - 11:13
(20) А если платеж тьфу полив пропустили по плану? Куда писать по графику и чем?
   RomaH
 
22 - 17.07.19 - 11:15
(21) нужен документ отражающий факт полива
хранить график не надо - это расчетная часть 
хранить только в случае если расчет будет долгим
хранить только дату последнего полива
   olegves
 
23 - 17.07.19 - 11:16
(21) в регистр писать только видРастения, период полива и объем полива на дату Документа. График полива считает обработка
   mirina313
 
24 - 17.07.19 - 11:20
(22) Например, при нажатии кнопки я заполняю "календарьполива" по указанному периоду (допустим с 20190101 по 2019020) и получаю печатную форму.

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.