Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Установка флажков

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

      ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.Флажок = Истина;
    //Иначе

     ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.Флажок = Истина;
    //КонецЕсли;

КонецПроцедуры
Закоментил, флажки вылетели, хм, значит уже с утра завтра буду копаться в условии и проверять условие в "большой" процедуре
   Cthulhu
 
17 - 05.04.21 - 14:42
   Cthulhu
 
18 - 05.04.21 - 14:42
   KoalaJustKoala
 
19 - 08.04.21 - 08:41
Такс, немного полежал с ОРВИ, вот пришел в себя и делюсь тем, как у меня заработало:

Процедура ЗаказыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.ОтображатьТекст = Ложь;
    ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.ОтображатьФлажок = Истина;
    ОформлениеСтроки.Ячейки.ДопСкидкаОтМедПредов.Флажок = ДанныеСтроки.ДопСкидкаОтМедПредов;
КонецПроцедуры

Все оказалось проще, чем представлялось...
   KoalaJustKoala
 
20 - 08.04.21 - 08:42
Хоть, раньше я представлял подобный конструкт, но там была ошибка в самом условии
Если ВыборкаПоДетали.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доп.скидка от мед.представителя") Тогда
        ДокументЗаказ.ДопСкидкаОтМедПредов = ИСТИНА;
        НоваяСтрока.ДопСкидкаОтМедПредов = ИСТИНА;
                        
    Иначе
        ДокументЗаказ.ДопСкидкаОтМедПредов = ЛОЖЬ;
        НоваяСтрока.ДопСкидкаОтМедПредов = ЛОЖЬ;
КонецЕсли;

В данном месте, привязка шла, не к документу, а только к товару 
Из-за этого и не получалось что-либо сделать

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.