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

Изменение даты

Автор dozent72, 28 апр 2011, 20:21

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

dozent72

Всем здравствуйте, недавно мы в универе начали изучать 1с предприятие 8.1. система очень интересная и вариативная благодаря программируемому модулю.
Сегодня натолкнулся на первые грабли связанные с недостатком знаний внутр. синтаксиса. Задача у меня такая - Есть форма эл. справочника "Номенклатура", в которой содержаться поля: "наим.товара", "категория товара", "дата прихода" и "годность", дак вот мне необходимо рассчитать срок годности(до какого числа) хранения того или иного товара по категории.
Пример, у меня есть категория сыро-молочных изделий, по умолчанию товары данного типа хранятся 4 дня, и мне нужно к "дате прихода" прибавить эти самые 4 дня.

В общем что у меня есть: 1) переменная в которой задается значение годности для каждой категории товаров; 2) Логическая функция, которая определяет тип категории и в соответствии с этим выбирает срок годности; и 3) Дата прихода, с типом "дата", из которой я получаю данные на обр.

Хотелось бы увидеть простой пример, который получает данные из строки с "датой прихода", производит прибавление и выводит в строку "годности". К сожалению наработки свои скинуть не могу Вирт. машина с 1С 8.1. критует при попытке запуска.

Грубо говоря схема такая:


День1=4; //сыро-молочные изделия
ЕСЛИ сыро-молочные Тогда
СрокГодности = ДатаПрихода + День1;
//здесь скорее всего надо преобразовать дату в строку, прибавить число и вывести обратно, только я не понимаю, как это описать.
КОНЕЦЕСЛИ;


chuevsf

Могу огорчить! Вы изучаете "старьё". Уже во всю "рулит"  платформа 8.2.
А сколько внутри её всяких "вкусностей"!!!

День прибавляется по-другому. Вспомните сколько секунд в одном дне? А сколько их будет в четырех днях?
И сразу Вам будет счастье!

Klyacksa

dozent72, в 1с, чтобы прибавить к дате некоторое количество дней, нужно прибавить количество секунд в этих днях. Собственно, можно не целыми днями, не важно. Главное, что прибавляемый интервал нужно перевести в секунды иэто количество секунд прибавить.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

dozent72

Я бы рад изучать самые свежие продукты, но уч. программа составляется не мною, а утверждается вообще раз в 5 лет.
А какого формата тогда будет число на выводе? Дата ведь имеет формат: ГГГГ.ММ.ДД?
Мне бы хотелось увидеть именно пример, если не сложно.

dozent72

Т.е. вид будет такой:
СрокГодности = ДатаПрихода + 345600;

Klyacksa

Да, правильно, так и будет :)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

cska-fanat-kz

Думается так...
Категории товара - делаем справочником, добавляем реквизит СрокГодности типа Число,
будем в нем указывать количество дней.

На форме элемента справочника Номенклатура обрабатываем события ПриИзменении реквизитов Категория и ДатаПрихода. А текст обработчика один и тот же:

Годность = ДатаПрихода + Категория.СрокГодности*60*60*24;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

dozent72

Пытаюсь реализовать такой вот пример:
Процедура категорияПриИзменении(Элемент)
ЕСЛИ этаформа.ЭлементыФормы.категория.Значение=Перечисления.Категория.Молочные ТОГДА
Этаформа.ЭлементыФормы.ГоденДО.Значение=этаформа.ЭлементыФормы.ДатаПоставки.Значение + 345600;
КОНЕЦЕСЛИ;
КонецПроцедуры

Ничего не изменяет...

dozent72

Всё заработало, забыл в Дату преобразовать =)
Всем спасибо за помощь!

cska-fanat-kz

У вас что на каждую категорию будет свой отдельный ЕСЛИ...??!!
А если категория добавится?
Потом будете думать как бы не забыть в коде прописать?

Сделайте как сказал - и будет вам счастье.
И сейчас и в дальнейшем...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск