|
как в УТ 10.3 проверить истечение срока годности номенклатуры | ☑ | ||
---|---|---|---|---|
0
amadeus2010
05.09.15
✎
20:22
|
Добрый вечер, в УТ 10.3 в документах реализация товаров и поступление товаров необходимо проверить истечение срока годности номенклатуры. Завел в сериях для каждой номенклатуры срок годности. Далее написал такой код:
/////////////////////////////////////////////// Если ДанныеСтроки.СерияНоменклатуры.СрокГодности = ДобавитьМесяц(Дата(ДанныеСтроки.СерияНоменклатуры.СрокГодности), -3) Тогда ОформлениеСтроки.Ячейки.Номенклатура.ЦветФона = WebЦвета.Зеленый; КонецЕсли; Если ДанныеСтроки.СерияНоменклатуры.СрокГодности = ДобавитьМесяц(Дата(ДанныеСтроки.СерияНоменклатуры.СрокГодности), -2) Тогда ОформлениеСтроки.Ячейки.Номенклатура.ЦветФона = WebЦвета.Оранжевый; КонецЕсли; Если ДанныеСтроки.СерияНоменклатуры.СрокГодности = ДобавитьМесяц(Дата(ДанныеСтроки.СерияНоменклатуры.СрокГодности), -1) Тогда ОформлениеСтроки.Ячейки.Номенклатура.ЦветФона = WebЦвета.Красный; КонецЕсли; ///////////////////////////////////////////////////////// при открытии документа реализация выходит ошибку что поле Серия номенклатуры не обнаружено. |
|||
1
Otkr
05.09.15
✎
20:23
|
Естесвенно, так как данные строки = неопределено
|
|||
2
amadeus2010
05.09.15
✎
20:31
|
(1) уточните пожалуйста
|
|||
3
Брегорьян
05.09.15
✎
20:32
|
(2) в момент открытия формы у ей нет активных(выделенных?) строк. поэтому неопределено
|
|||
4
Брегорьян
05.09.15
✎
20:34
|
+(3) на вопрос "а что делать?" ответь сам
|
|||
5
amadeus2010
05.09.15
✎
20:46
|
а понятно теперь
|
|||
6
amadeus2010
07.09.15
✎
23:42
|
в процедуру добавил код для того чтобы отследить срок истечения срока годности номенклатуры серии срок годности товара меньше 30 дней
///////////////////////////////////////////////////// Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок) РаботаСДиалогами.УстановитьКартинкиВСтрокахТЧ(ОформленияСтрок, мКартинкаСерийныеНомера, мКартинкаНаборКомплект); //Дима Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл ЗначениеЯчейкиСрокГодности = ОформлениеСтроки.Ячейки.СерияНоменклатуры.СрокГодности.Значение; Если ЗначениеЯчейкиСрокГодности <> Неопределено Тогда Если ЗначениеЯчейкиСрокГодности < ДобавитьМесяц(Дата(ОформлениеСтроки.Ячейки.СерияНоменклатуры.СрокГодности.Значение), -3) Тогда ОформлениеСтроки.Ячейки.Номенклатура.ЦветФона = WebЦвета.Зеленый; ИначеЕсли ЗначениеЯчейкиСрокГодности < ДобавитьМесяц(Дата(ОформлениеСтроки.Ячейки.СерияНоменклатуры.Значение), -2) Тогда ОформлениеСтроки.Ячейки.Номенклатура.ЦветФона = WebЦвета.Оранжевый; ИначеЕсли ЗначениеЯчейкиСрокГодности < ДобавитьМесяц(Дата(ОформлениеСтроки.Ячейки.СерияНоменклатуры.Значение), -1) Тогда ОформлениеСтроки.Ячейки.Номенклатура.ЦветФона = WebЦвета.Красный; КонецЕсли; КонецЕсли; КонецЦикла; //Дима КонецПроцедуры ///////////////////////////////////////////////// не отрабатывает код,выходит ошибка |
|||
7
Маус
08.09.15
✎
00:06
|
//Дима
улыбнуло;-) |
|||
8
hmmm
08.09.15
✎
00:45
|
если тема еще не закрыта:
Я бы добавлял подобную проверку в процедуру ПриВыводеСтроки () - и возможно при записи (если есть какое-то хитрое заполнение док-та). |
|||
9
Брегорьян
08.09.15
✎
05:57
|
>выходит ошибка
будь мужиком, читай её |
|||
10
amadeus2010
08.09.15
✎
17:21
|
никакого хитрого заполнения документа нет, обычный учет по сериям.
При Если ЗначениеЯчейкиСрокГодности < ДобавитьМесяц(Дата(ОформлениеСтроки.Ячейки.СерияНоменклатуры.СрокГодности.Значение), -3) то выходит ошибка не найдено поле СерияНоменклатуры.СрокГодности так как в форме документа есть только поле Серия номенклатуры |
|||
11
ДенисЧ
08.09.15
✎
17:42
|
а если отладчиком посмотреть, что у тебя в ДанныеСтроки есть?
|
|||
12
amadeus2010
08.09.15
✎
18:45
|
в процедуру товары при выводе строки добавил такой код
///////////////////////////////////////////////////// //Дима Для Каждого ОформлениеСтроки Из ДанныеСтроки Цикл Если ДанныеСтроки.СерияНоменклатуры.СрокГодности <> Неопределено Тогда Если ДанныеСтроки.СерияНоменклатуры.СрокГодности < ДобавитьМесяц(Дата(ДанныеСтроки.СерияНоменклатуры.СрокГодности), -3) Тогда ОформлениеСтроки.Ячейки.Номенклатура.ЦветФона = WebЦвета.Зеленый; ИначеЕсли ДанныеСтроки.СерияНоменклатуры.СрокГодности < ДобавитьМесяц(Дата(ДанныеСтроки.СерияНоменклатуры.СрокГодности), -2) Тогда ОформлениеСтроки.Ячейки.Номенклатура.ЦветФона = WebЦвета.Оранжевый; ИначеЕсли ДанныеСтроки.СерияНоменклатуры.СрокГодности < ДобавитьМесяц(Дата(ДанныеСтроки.СерияНоменклатуры.СрокГодности), -1) Тогда ОформлениеСтроки.Ячейки.Номенклатура.ЦветФона = WebЦвета.Красный; КонецЕсли; КонецЕсли; КонецЦикла; //Дима ///////////////////////////////////////// при проверке отладчиком ДанныеСтроки.СерияНоменклатуры.СрокГодности показывает тот срок годноти который указан в этом поле при этом цвет строки не меняется |
|||
13
amadeus2010
08.09.15
✎
19:23
|
скорее всего думаю использовать не сравнение на больше, меньше а операцию равно
|
|||
14
amadeus2010
12.09.15
✎
16:43
|
добрый вечер чтобы не создавать новую тему пишу в старой.
УТ 10.3, в процедуре при выводе строки документа реализация товаров добавил такой код: ///////////////////////////////////////////////// Дата90дней = ДобавитьМесяц(Дата(ОформлениеСтроки.ДанныеСтроки.СерияНоменклатуры.СрокГодности), -3); Дата60дней = ДобавитьМесяц(Дата(ОформлениеСтроки.ДанныеСтроки.СерияНоменклатуры.СрокГодности), -2); Дата30дней = ДобавитьМесяц(Дата(ОформлениеСтроки.ДанныеСтроки.СерияНоменклатуры.СрокГодности), -1); СрокГодности = ОформлениеСтроки.ДанныеСтроки.СерияНоменклатуры.СрокГодности; Если СрокГодности < Дата90дней И СрокГодности > Дата60дней Тогда ОформлениеСтроки.ЦветФона = WebЦвета.Зеленый; ИначеЕсли СрокГодности < Дата60дней И СрокГодности > Дата30дней Тогда ОформлениеСтроки.ЦветФона = WebЦвета.Оранжевый; ИначеЕсли СрокГодности <= Дата30дней Тогда ОформлениеСтроки.ЦветФона = WebЦвета.Красный; КонецЕсли; ///////////////////////////////////////// Дата30,60,90дней и СрокГодности срабатывает если заполнено поле СерияНоменклатуры. При открытии документа вся табличная часть окрашена в красный цвет за исключением тех строк где указана серия номенклатуры в табличной части. Что можете посоветовать? |
|||
15
Брегорьян
12.09.15
✎
16:51
|
покрась в зелёный, это успокоит юзеров
|
|||
16
Брегорьян
12.09.15
✎
16:55
|
если а между а-2 и а-3
иначе если а между а-2 и а-1 иначе если а<=а-1 красавец, чо |
|||
17
andrewrocker
12.09.15
✎
18:42
|
я не парился с сериями, и не парил пользователей
сделал реквизит на карточке "срок хранения" в днях и запилил очень простенький отчет по срокам годности с регистром партии товаров на складах. |
|||
18
amadeus2010
12.09.15
✎
19:39
|
(17) дело в том что подобный отчет имеется и он работает, заказчик хочет именно такую проверку срока годности товаров в документе.
Просто пока не могу сообразить как сделать такую проверку |
|||
19
andrewrocker
12.09.15
✎
19:50
|
(18) а проверку на что? плюс нафига заказчику именно СЕРИЯ номенклатуры?
|
|||
20
amadeus2010
12.09.15
✎
21:52
|
(19) под проверкой я имел ввиду создать работающее условие при котором если серияноменклатуры.срок годности меньше 3 или 6 месяцев то строка серия номенклатуры окрашивается в определенный цвет. А зачем мне создавать новый реквизит если можно использовать учет по сериям и смотреть отчеты
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |