|
Установка флажков | ☑ | ||
---|---|---|---|---|
0
KoalaJustKoala
05.04.21
✎
11:50
|
В общем ситуация такая:
http://pics.rsh.ru/img/_620c1kcg.png Имеется некая таблица, внутри которой надо ставить флажки при истине, но как бы программно это не пробовал не получается Грешу на то, что таблица тесно плетётся с данными и вся шляпа из-за этого :( |
|||
1
Cthulhu
05.04.21
✎
12:04
|
шляпа не из-за "этого" а из-за того. что неправильно "грешишь". но ничо, "греши" дальше.
|
|||
2
KoalaJustKoala
05.04.21
✎
12:11
|
(1) Понимаю, но пока не знаю куда смотреть и шо искать :(
|
|||
3
Fish
05.04.21
✎
12:39
|
(2) Для начала неплохо бы выложить сюда код.
|
|||
4
Chameleon1980
05.04.21
✎
12:43
|
(3) и запомнить, что всегда нужно показывать что делаешь и что не
Получается |
|||
5
KoalaJustKoala
05.04.21
✎
12:49
|
Я опущу запрос, он слишком здоровый, вот здесь основная часть
ВыборкаПоСвойству = ЗапросПоКонтрагентамПрайсов.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Свойство"); //ВыборкаПоКонтрагентам = ЗапросПоКонтрагентамПрайсов.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Контрагент"); //НачатьТранзакцию(); Пока ВыборкаПоСвойству.Следующий()Цикл ВыборкаПоКонтрагентам = ВыборкаПоСвойству.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Контрагент"); Пока ВыборкаПоКонтрагентам.Следующий()Цикл ВыборкаПоABCКатегориям = ВыборкаПоКонтрагентам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ABCКлассификация"); Пока ВыборкаПоABCКатегориям.Следующий() Цикл ДокументЗаказ = Документы.ЗаказПоставщику.СоздатьДокумент(); ДокументЗаказ.Дата = ТекущаяДата(); ДокументЗаказ.Контрагент = ВыборкаПоКонтрагентам.Контрагент; ДокументЗаказ.Склад=ОсновнойСклад; ДокументЗаказ.Валюта=Валюта; // <ESA> <20.02.2012> <-- ДокументЗаказ.Ответственный = ПараметрыСеанса.ТекущийПользователь; // <ESA> <20.02.2012> --> ВыборкаПоНоменклатуре = ВыборкаПоABCКатегориям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура"); Пока ВыборкаПоНоменклатуре.Следующий()Цикл //Список = Новый СписокЗначений; ////ДатаКон = ДобавитьМесяц(ТекущаяДата(), 8); //ДатаКон = ТекущаяДата(); //Пока ДатаКон <= ДобавитьМесяц(ТекущаяДата(), 8) Цикл // Список.Вставить(ДатаКон); // ДатаКон = НАчалоДня(ДатаКон + 1*3600*24); //КонецЦикла; ВыборкаПоДетали = ВыборкаПоНоменклатуре.Выбрать(); Пока ВыборкаПоДетали.Следующий() Цикл ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("Номенклатура", ВыборкаПоДетали.Номенклатура); НайденныеСтроки = ДокументЗаказ.Товары.НайтиСтроки(ПараметрыОтбора); Если НайденныеСтроки.Количество() > 0 Тогда Продолжить; КонецЕсли; НоваяСтрока = ДокументЗаказ.Товары.Добавить(); НоваяСтрока.Номенклатура = ВыборкаПоДетали.Номенклатура; НоваяСтрока.Наименование = ВыборкаПоДетали.НоменклатураВпрайсе; НоваяСтрока.ЕдиницаИзмерения = НоваяСтрока.Номенклатура.ЕдиницаХраненияОстатков; НоваяСтрока.Количество = ВыборкаПоДетали.Потребность; НоваяСтрока.КоличествоPC = ВыборкаПоДетали.Потребность; НоваяСтрока.Цена = ВыборкаПоДетали.Цена; НоваяСтрока.ЦенаСоСкидкой = ВыборкаПоДетали.Цена; НоваяСтрока.Коэффициент = 1; НоваяСтрока.СтавкаНДС = НоваяСтрока.Номенклатура.СтавкаНДС; НоваяСтрока.ABCКлассификация = ВыборкаПоДетали.ABCКлассификация; НоваяСтрока.XYZКлассификация = ВыборкаПоДетали.XYZКлассификация; НоваяСтрока.Производитель = ВыборкаПоДетали.Производитель; НоваяСтрока.ПроизводительНаименование = ВыборкаПоДетали.Производитель; НоваяСтрока.СрокГодности = ВыборкаПоДетали.СрокГодности; НоваяСтрока.СрокГодностиНаименование = ВыборкаПоДетали.СрокГодности; //Григорий Если ВыборкаПоДетали.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доп.скидка от мед.представителя") Тогда НоваяСтрока.ДопСкидкаОтМедПредов = Истина; Иначе НоваяСтрока.ДопСкидкаОтМедПредов = Ложь; КонецЕсли; //Григорий ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(НоваяСтрока, ДокументЗаказ); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ДокументЗаказ); Если ВыборкаПоДетали.ПредельнаяЦена <> 0 И ВыборкаПоДетали.Цена > ВыборкаПоДетали.ПредельнаяЦена Тогда Сообщить("Для номенклатуры "+ВыборкаПоДетали.Номенклатура+" цена поставщика "+сокрлп(ВыборкаПоКонтрагентам.Контрагент)+" превышает предельную!", СтатусСообщения.Важное); КонецЕсли; КонецЦикла; КонецЦикла; УстановитьОсновногоПроизводителя(ДокументЗаказ.Товары); ДокументЗаказ.Записать(РежимЗаписиДокумента.Запись); КонецЦикла; КонецЦикла; |
|||
6
KoalaJustKoala
05.04.21
✎
12:51
|
между коментами Григорий
Можно заметить небольшое условие которое, записывает есть ли свойство для этого препарата или нет |
|||
7
KoalaJustKoala
05.04.21
✎
12:52
|
При включенных данных строки прописывал вот такое
ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.ОтображатьТекст = Ложь; ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.ОтображатьФлажок = Истина; ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.Флажок = ДанныеСтроки.ДопСкидкаОтМедПредов; Не помогло |
|||
8
KoalaJustKoala
05.04.21
✎
12:53
|
Дальше юзал соответсвия в выводе строки, но увы код не сохранился
|
|||
9
Fish
05.04.21
✎
12:57
|
(6) В отладчике смотрел, что условие выполняется?
|
|||
10
KoalaJustKoala
05.04.21
✎
13:07
|
(9) Да, самое странное что выполняется, проверял еще через запрос, вообще вписывается ли истина или ложь
Все записывается |
|||
11
KoalaJustKoala
05.04.21
✎
13:08
|
Он вот просто не выводит ни флажок, ни да, ни нет
Просто пустые ячейки |
|||
12
KoalaJustKoala
05.04.21
✎
13:10
|
Я вот думаю, если он записывался в документ
Не может быть такой момент, что он присваивал именно да или нет? |
|||
13
3achem
05.04.21
✎
13:30
|
(11) Тип какой у НоваяСтрока.ДопСкидкаОтМедПредов?
|
|||
14
KoalaJustKoala
05.04.21
✎
13:43
|
(13) булевое
|
|||
15
3achem
05.04.21
✎
14:06
|
(14) Убери условие, поставь всем строкам Истина
|
|||
16
KoalaJustKoala
05.04.21
✎
14:19
|
(15) Процедура ЗаказыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.ОтображатьФлажок = Истина; //Если ДопСкидкаМедПредов[ДанныеСтроки] = Неопределено Тогда ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.Флажок = Истина; //Иначе ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.Флажок = Истина; //КонецЕсли; КонецПроцедуры Закоментил, флажки вылетели, хм, значит уже с утра завтра буду копаться в условии и проверять условие в "большой" процедуре |
|||
17
Cthulhu
05.04.21
✎
14:42
|
||||
18
Cthulhu
05.04.21
✎
14:42
|
||||
19
KoalaJustKoala
08.04.21
✎
08:41
|
Такс, немного полежал с ОРВИ, вот пришел в себя и делюсь тем, как у меня заработало:
Процедура ЗаказыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.ОтображатьТекст = Ложь; ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.ОтображатьФлажок = Истина; ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.Флажок = ДанныеСтроки.ДопСкидкаОтМедПредов; КонецПроцедуры Все оказалось проще, чем представлялось... |
|||
20
KoalaJustKoala
08.04.21
✎
08:42
|
Хоть, раньше я представлял подобный конструкт, но там была ошибка в самом условии
Если ВыборкаПоДетали.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доп.скидка от мед.представителя") Тогда ДокументЗаказ.ДопСкидкаОтМедПредов = ИСТИНА; НоваяСтрока.ДопСкидкаОтМедПредов = ИСТИНА; Иначе ДокументЗаказ.ДопСкидкаОтМедПредов = ЛОЖЬ; НоваяСтрока.ДопСкидкаОтМедПредов = ЛОЖЬ; КонецЕсли; В данном месте, привязка шла, не к документу, а только к товару Из-за этого и не получалось что-либо сделать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |