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

Отсчет времени

Автор sali, 09 янв 2025, 12:15

sali, antoneus и 1 гость просматривают эту тему.

sali

с новым годом вас.
возник таков вопрос, мне по заданию нужно разрешить менять состав деталей системного блока на новый только по истечению недели.
Для каждого системного блока в информационной базе должна храниться информация о его составе (спецификация): детали, их свойства и количество. Состав деталей может изменяться не чаще чем 1 раз в неделю.
как мне проверять прошла неделя записи или нет. и можно ли это вывести наглядно , чтоб как отсчет времени выглядел по типу 7дн 15ч 48мин 31сек или изменить можно 20 января 2025 года, или вовсе сделать отдельную колонку что когда время вышло появилась кнопка "Можно изменить"

как такое делается? мои предположения в РС "Спецификация" сделать процедуру для кнопки "Можно изменить" (как раз таки). В процедуре прописываем условие Если текущая дата больше , чем (дата записи  + время 7 дней (это 10 080 минут)) то кнопка "Можно изменить".Видимость = истина

Максим75

sali, можно, только помните, что надо прибавлять секунды.
т.е. 86400*КоличествоДней

ну и Вы получите дату отстоящую от даты записи на 7 дней (с учетом всех минут и секунд).
т.е. если дата записи допустим 01.01.2025 10:02:03 то кнопка станет доступной 07.01.2025 после 10:02:03, если хотите, чтобы была доступна в любое время 7 числа, та проверку делайте от начала дня даты записи.

sali

Максим75, а каким образом можно сделать визуально этот отсчет
Цитата: sali от 09 янв 2025, 12:157дн 15ч 48мин 31сек
?

Максим75

sali, считаете разницу между двумя датами - получаете количество секунд.
потом в несколько заходов из секунд вначале получаете целое число дней, потом считаете сколько осталось - это будут часы и т.д. до секунд.
уверен, что в сети полно кода по этому вопросу.

sali

Максим75,В документе сборка используются две табличные части. В первой – указывается перечень собираемых системных блоков и их количество. Во второй – список дополнительных  деталей, их свойств и количества, которые потребовались при текущей сборке. скажите а вот можно добавить несколько свойств в одно поле с формы выбора/списка?


Afinogen

sali,
Цитата: sali от 10 янв 2025, 12:59Максим75,В документе сборка используются две табличные части. В первой – указывается перечень собираемых системных блоков и их количество. Во второй – список дополнительных  деталей, их свойств и количества, которые потребовались при текущей сборке. скажите а вот можно добавить несколько свойств в одно поле с формы выбора/списка?


во-первых непонятно что вам требуется, во-вторых вопрос  - а зачем?

Afinogen

 B) вы хотите в 1-й ячейке строки ТЧ иметь возможность хранить несколько значений? если так то тут пути разные могут быть:  вы можете тип значение такой ячейки сделать Хранилище Значения и хранить там что  угодно, но тут важно учитывать что у вас на форме должно быть просто поле в котором вы будете отображать некий список и отображение его, не связанной с реквизитом ТЧ,  а уже сами конкретные данные будут храниться в скрытой от пользователя ячейке, если у вас тип значения элемента списка  -  строка то можете тупо хранить данные из списка в виде одной длинной строки где данные будут разделены каким то уникальным разделителем типа знака доллар, но тогда при обработке данных всегда придется парсить строку

в любом случае хранение нескольких значений в 1-й ячейке приведет в дальнейшем к сложностям в обработке таких данных напрмиер при формировании очетов, по этому если хотите такое замутить задумайтесь над регистром каким в котором будут храниться нормализованные данные

sali

Afinogen, я нашел такое видео https://xn----1-bedvffifm4g.xn--p1ai/news/2022-12-28-multiple-characteristics-mechanism/ , и все равно пока делал запутался   :bleh: . в начале когда создавал спр номенклатура добавил 2 тч: характеристика и свойство. а этого не нужно по идеи ииии просто оставить 1 тч чтобы выбрать свойство

sali

Afinogen, мне требуется следующее Из деталей производится сборка системных блоков, причем предполагается невозможность разборки, т.е. собрав системный блок, невозможно из него извлечь деталь обратно. Учет деталей производится в разрезе свойств и характеристик и должен быть реализован с помощью Плана видов характеристик. Набор характеристик составляет свойство. У одной детали может быть несколько разных свойств.
Для каждого системного блока в информационной базе должна храниться информация о его составе (спецификация): детали, их свойства и количество. Состав деталей может изменяться не чаще чем 1 раз в неделю.
В документе сборка используются две табличные части. В первой – указывается перечень собираемых системных блоков и их количество. Во второй – список дополнительных  деталей, их свойств и количества, которые потребовались при текущей сборке.
В шапке документа «Сборка» указывается подразделение, из которого были списаны детали и подразделение, в которое поступают собранные системные блоки.

как я понимаю это:
есть спр Номенклатура, есть 2 пвх (характ-ка, свойство). в пвх Свойство создается там, частота, тип памяти, мощность, Объём и тд, а в пвх Харак-ка уже значения, GDDR6, NVIDIA, RTX 3060; DDR4, 16 ГБ, 3200 МГц и не понимаю дальше что как, как распутать этот клубок??

LexaK

sali, все это выпендреж с отсчетом времени.
просто на кнопку изменения состава повести примерно такой функционал


ДатаИзмененияСостава: //поместите сюда дату последней записи в регистр
лкСледующаячДата = ДатаИзмененияСостава + (7 * 24 * 3600); //плюс неделя
лкРазница = лкСледующаячДата  - ТекущаяДата();
Если лкРазница   >  0 Тогда
     //здесь можете преобразовать лкРазница  в сасы, минуты, ... 
     ПоказатьПредупреждение(,"До изменения осталось: " + лкРазница    + " сек.", 60);
Иначе
     //здесь открываете свою форму для изменения
КонейЕсли;

пользователь нажимает вашу кнопку Изменить состав
и либо получает сообщение что еще не время (с указанием сколько времени еще до изменения)
либо открывается форма для изменения
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск