Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 05:53

Расчет даты окончания

Автор NAstyaDav, 02 июн 2018, 11:37

0 Пользователей и 1 гость просматривают эту тему.

pavl_vs

NAstyaDav, Периодичность, но не Переодичность, и это не опечатка.
Теперь по существу.
Как я понимаю "Анализы" это ваша ТЧ, в которой есть реквизиты "ДатаНачала" и "ДатаОкончания", а "СрокДействия" возьмем для упрощения из шапки. Тогда примерно так:

&НаКлиенте
Процедура АнализыДатаНачалаПриИзменении(Элемент)
    // Вставить содержимое обработчика.
    // Получаем Текущую строку как объект
    СтрокаТЧ = ЭлементыАнализы.ТекущиеДанные; // Возможно так Элементы["Анализы"].ТекущиеДанные;
    ДатаН = СтрокаТЧ.ДатаНачала;
    ДатаК = СтрокаТЧ.ДатаОкончания;
    Срок  = СрокДействия; // В месяцах из Шапки
    ДатаК = ДобавитьМесяц(ДатаН, Срок);
КонецПроцедуры


Есть противоречия, которые состоят в независимости заполнения Шапки и Табличной части документа (Медицинской книжки), а ведь в самом общем случае срок действия Медицинской книжки и Вида (видов) анализа могут не совпадать. На мой взгляд они не могут быть независимыми. Возможно я ошибаюсь.

А это накладывает определенные требования при написании кода. Важно понимать, что является определяющим, понимать логику в значениях дат, сроках действия. Всё это осталось "за бортом". Ваш же вопрос, по существу, свелся к частной проблеме "прибавить месяц к дате".

И ответ на этот вопрос дан.

Разберитесь со сроками действия.

Добавлено: 02 июн 2018, 15:30


alexandr_ll, анализы обычно выдаются со сроком действия в месяцах; в днях это слишком мелко.
Да и сроки действия медицинских книжек тоже.
И в целом в Периодичности вряд ли подразумевается наличие День.
Добавлено: 02 июн 2018, 15:36


alexandr_ll, я бы даже уточнил, анализы не выдаются, а требуются со сроком действия не больше.

NAstyaDav

Цитата: pavl_vs от 02 июн 2018, 15:11
NAstyaDav, Периодичность, но не Переодичность, и это не опечатка.
Теперь по существу.
Как я понимаю "Анализы" это ваша ТЧ, в которой есть реквизиты "ДатаНачала" и "ДатаОкончания", а "СрокДействия" возьмем для упрощения из шапки. Тогда примерно так:

&НаКлиенте
Процедура АнализыДатаНачалаПриИзменении(Элемент)
    // Вставить содержимое обработчика.
    // Получаем Текущую строку как объект
    СтрокаТЧ = ЭлементыАнализы.ТекущиеДанные; // Возможно так Элементы["Анализы"].ТекущиеДанные;
    ДатаН = СтрокаТЧ.ДатаНачала;
    ДатаК = СтрокаТЧ.ДатаОкончания;
    Срок  = СрокДействия; // В месяцах из Шапки
    ДатаК = ДобавитьМесяц(ДатаН, Срок);
КонецПроцедуры


Есть противоречия, которые состоят в независимости заполнения Шапки и Табличной части документа (Медицинской книжки), а ведь в самом общем случае срок действия Медицинской книжки и Вида (видов) анализа могут не совпадать. На мой взгляд они не могут быть независимыми. Возможно я ошибаюсь.

А это накладывает определенные требования при написании кода. Важно понимать, что является определяющим, понимать логику в значениях дат, сроках действия. Всё это осталось "за бортом". Ваш же вопрос, по существу, свелся к частной проблеме "прибавить месяц к дате".

И ответ на этот вопрос дан.

Разберитесь со сроками действия.

Добавлено: 02 июн 2018, 15:30


alexandr_ll, анализы обычно выдаются со сроком действия в месяцах; в днях это слишком мелко.
Да и сроки действия медицинских книжек тоже.
И в целом в Периодичности вряд ли подразумевается наличие День.
Добавлено: 02 июн 2018, 15:36


alexandr_ll, я бы даже уточнил, анализы не выдаются, а требуются со сроком действия не больше.
Когда создаем новый анализ там есть срок действия его, для каждого свой, где то 6 мес где то 12 мес, т.е срок действия анализа берется из  справочника виды анализов. А есть еще и срок действия самое мед книжки это др

pavl_vs

Цитата: NAstyaDav от 02 июн 2018, 17:26
... срок действия анализа берется из справочника виды анализов. А есть еще и срок действия самое мед книжки это др

Вот!

Теперь в решении первой части вопроса остается малое в указанной обработке:
- из тек. строки получить вид анализа;
- по ссылке извлечь реквизит СрокДействияВидаАнализа;
- и использовать значение этого реквизита в качестве переменной Срок, т.е. ДатаОкончания.

О второй части вопроса - наоборот, изменяя Срок действия получать новое значение Даты окончания.
Задам свои вопросы:
- какой "срок действия" Вы хотите менять;
- и вообще как определяется срок действия Книжки?

NAstyaDav

Цитата: pavl_vs от 02 июн 2018, 17:56
Цитата: NAstyaDav от 02 июн 2018, 17:26
... срок действия анализа берется из справочника виды анализов. А есть еще и срок действия самое мед книжки это др

Вот!

Теперь в решении первой части вопроса остается малое в указанной обработке:
- из тек. строки получить вид анализа;
- по ссылке извлечь реквизит СрокДействияВидаАнализа;
- и использовать значение этого реквизита в качестве переменной Срок, т.е. ДатаОкончания.

Написала, но не работает(

Добавлено: 02 июн 2018, 18:36


Цитата: pavl_vs от 02 июн 2018, 17:56
Цитата: NAstyaDav от 02 июн 2018, 17:26
... срок действия анализа берется из справочника виды анализов. А есть еще и срок действия самое мед книжки это др

О второй части вопроса - наоборот, изменяя Срок действия получать новое значение Даты окончания.
Задам свои вопросы:
- какой "срок действия" Вы хотите менять;
- и вообще как определяется срок действия Книжки?
Срок действия анализов не изменяется один раз забил и все, но нужно будет тоже писать код, чтобы автоматом появлялся список анализов, когда заполняешь книжку сотрудника, чтобы каждый раз не добавлять, только нужно будет заполнить дату начала и все..
- срок книжки по умолчанию 12 мес пока так, но если новый сотрудник пришел и у него нет книжки то она у него будет например действовать 3 года, если была то 2 года, т.е в ручную по факту

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск