На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Этот раздел предназначен для заполнения/проверки/рехтования/* содержимого будущего FAQ и не более того.
Все вопросы касательно 1С следует задавать здесь: 1С: Проблемы и решения
Страницы: (4) 1 2 [3] 4  все  ( Перейти к последнему сообщению )  
> вопросы -ответы №3 , format complete, осталось проверить и расфасовать
    Как заполнить ячейку табличного поля данными?
    ExpandedWrap disabled
      Процедура ТабличноеПолеЗаказовЗаказПриИзменении(Элемент)
       
              // Получить текущую строку табличного поля.
              СтрокаТаблицы = ЭлементыФормы.ТабличноеПолеЗаказов.ТекущаяСтрока;
       
              // Ввести значения в ячейки строки.
              СтрокаТаблицы.Контрагент = СтрокаТаблицы.Заказ.Контрагент;
              СтрокаТаблицы.ДатаОтгрузки = СтрокаТаблицы.Заказ.ДатаОтгрузки;
       
      КонецПроцедуры
      Как изменить цвет фона ячейки табличного поля в зависимости от значения, выводимого в нее?
      ExpandedWrap disabled
        Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
         
                Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
                       ЗначениеЯчейкиОстаток = ОформлениеСтроки.Ячейки.Остаток.Значение;
                
                       Если ЗначениеЯчейкиОстаток <> Неопределено Тогда
         
                               Если ЗначениеЯчейкиОстаток < 10 Тогда
                                       ОформлениеСтроки.Ячейки.Остаток.ЦветФона = WebЦвета.Красный;
         
                               ИначеЕсли ЗначениеЯчейкиОстаток > 100 Тогда
                                       ОформлениеСтроки.Ячейки.Остаток.ЦветФона = WebЦвета.Желтый;
                               КонецЕсли;
                       КонецЕсли;
                КонецЦикла;
         
        КонецПроцедуры
        Как в табличное поле "ВыбранныеКонтрагенты" добавить новую колонку "ОсновнойДоговор", заполнить ее значения и дать возможность открытия этих значений?
        ExpandedWrap disabled
          Если ТаблицаКонтрагентов.Колонки.Найти("ОсновнойДоговор") = Неопределено Тогда
                  МассивТипов = Новый Массив();
                  МассивТипов.Добавить(Тип("СправочникСсылка.ДоговорыКонтрагентов"));
                  ОписаниеНужныхТипов = Новый ОписаниеТипов(МассивТипов);
                  ТаблицаКонтрагентов.Колонки.Добавить("ОсновнойДоговор", ОписаниеНужныхТипов);
          КонецЕсли;
           
          Для Каждого СтрокаТаблицы из ТаблицаКонтрагентов Цикл
                  СтрокаТаблицы["ОсновнойДоговор"] = СтрокаТаблицы["Контрагент"]["ОсновнойДоговорКонтрагента"];
          КонецЦикла;
           
          ЭлементыФормы.ВыбранныеКонтрагенты.СоздатьКолонки();
          ЭлементыФормы.ВыбранныеКонтрагенты.Колонки.ОсновнойДоговор.ЭлементУправления.КнопкаОткрытия = Истина;
          Как задать список выбора для колонки "ВидДокумента" табличного поля?
          ExpandedWrap disabled
            Процедура ПриОткрытии()
             
                    СписокВидовДокументов = Новый СписокЗначений;
                    
                    Для Каждого ДокументКонфигурации из Метаданные.Документы Цикл
                           СписокВидовДокументов.Добавить(ДокументКонфигурации.Имя);
                    КонецЦикла;
             
                    ЭлементыФормы.ПодборДанных.Колонки.ВидДокумента.ЭлементУправления.СписокВыбора = СписокВидовДокументов;
             
            КонецПроцедуры
             
            ЭлементыФормы.ПодборДанных.Колонки.ВидДокумента.ЭлементУправления.КнопкаСпискаВыбора = Истина;
            Как обеспечить возможность отбора и сортировки данных по реквизитам, не отображаемым в табличном поле формы списка справочника?
            ExpandedWrap disabled
              ЭлементыФормы.СправочникСписок.НастройкаОтбора.ОсновнойПоставщик.Доступность = Истина;
              ЭлементыФормы.СправочникСписок.НастройкаПорядка.ОсновнойПоставщик.Доступность = Истина;
              Как реализовать перетаскивание между элементами управления?
              ExpandedWrap disabled
                Процедура НоменклатураНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
                 
                        // Получить значение, переданное системой.
                        Значение = ПараметрыПеретаскивания.Значение;
                 
                        // В любом случае значением будет массив.
                        МассивЗначений = Новый Массив;
                 
                        // Если перетаскивается группа, то в массив записываем входящие в нее элементы.
                        Если Значение.ЭтоГруппа Тогда
                               Выборка = Справочники.Номенклатура.Выбрать(Значение);
                               Пока Выборка.Следующий() Цикл
                                       Если Не Выборка.ЭтоГруппа Тогда
                                               МассивЗначений.Добавить(Выборка.Ссылка);
                                       КонецЕсли;
                               КонецЦикла;
                        Иначе
                               МассивЗначений.Добавить(Значение);
                        КонецЕсли;
                 
                        // Заполненный массив записываем в параметры.
                        ПараметрыПеретаскивания.Значение = МассивЗначений;
                 
                КонецПроцедуры
                 
                Процедура ТоварыПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
                 
                        СтандартнаяОбработка = Ложь;
                 
                КонецПроцедуры
                 
                Процедура ТоварыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
                 
                        ПолученныйМассив = ПараметрыПеретаскивания.Значение;
                        Если ТипЗнч(ПолученныйМассив) = Тип("Массив") Тогда
                               Для Каждого Значение Из ПолученныйМассив Цикл
                                       НоваяСтрока = ДокументОбъект.Товары.Добавить();
                                       НоваяСтрока.Номенклатура = Значение;
                                       НоваяСтрока.Количество = 1;
                               КонецЦикла;
                        КонецЕсли;
                 
                КонецПроцедуры
                Как вывести остатки на складах в списке номенклатуры?
                ExpandedWrap disabled
                  Процедура СписокНоменклатураПриПолученииДанных(Элемент, ОформленияСтрок)
                   
                          Запрос = Новый Запрос("ВЫБРАТЬ
                          |       ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
                          |       ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Товар
                          |ИЗ
                          |       РегистрНакопления.ТоварыНаСкладах.Остатки( , Номенклатура В (&МассивТоваров)) КАК ТоварыНаСкладахОстатки");
                   
                          МассивНоменклатуры = Новый Массив; // для передачи в параметр запроса
                          Соответствие = Новый Соответствие; // для заполнения остатков в строках табличного поля
                   
                          Для Каждого Строка из ОформленияСтрок Цикл
                                 МассивНоменклатуры.Добавить(Строка.ДанныеСтроки.Ссылка);
                                 Соответствие.Вставить(Строка.ДанныеСтроки.Ссылка, Строка);
                          КонецЦикла;
                   
                          Запрос.УстановитьПараметр("МассивТоваров", МассивНоменклатуры);
                   
                          Выборка = Запрос.Выполнить().Выбрать();
                   
                          // Вывести остаток в строку, найденную в соответствии по номенклатуре
                          // из запроса.
                          Пока Выборка.Следующий() Цикл
                                 Соответствие.Получить(Выборка.Товар.Ссылка).Ячейки.Остаток.Значение = Выборка.Остаток;
                          КонецЦикла;
                   
                  КонецПроцедуры
                  Другие элементы управления
                  В форме есть панель со страницами. Как разместить картинку на закладке?
                  ExpandedWrap disabled
                    ЭлементыФормы.ОсновнаяПанель.Страницы.СчетаУчета.КартинкаЗаголовка = БиблиотекаКартинок.ДебетКредит;
                    Как обеспечить, чтобы при открытии формы уже записанного элемента справочника "Контрагенты" активной была закладка "СчетаИДоговоры" панели "Панель"?
                    ExpandedWrap disabled
                      Процедура ПриОткрытии()
                       
                              Если ЭтоНовый() = Ложь Тогда
                                     ЭлементыФормы.Панель.ТекущаяСтраница = ЭлементыФормы.Панель.Страницы.СчетаИДоговоры;
                              КонецЕсли;
                       
                      КонецПроцедуры
                      Как организовать выбор из нескольких списков документов для открытия?
                      ExpandedWrap disabled
                        Док = Метаданные.Документы;
                        СписокДокументов = Новый СписокЗначений();
                         
                        СписокДокументов.Добавить(Док.ПлатежноеПоручениеИсходящее, , Ложь);
                        СписокДокументов.Добавить(Док.ПлатежноеПоручениеВходящее, , Ложь);
                        СписокДокументов.Добавить(Док.АккредитивПереданный, , Ложь);
                        СписокДокументов.Добавить(Док.АккредитивПолученный, , Ложь);
                        СписокДокументов.Добавить(Док.ПлатежноеТребованиеВыставленное, , Ложь);
                        СписокДокументов.Добавить(Док.ПлатежноеТребованиеПолученное, , Ложь);
                        СписокДокументов.Добавить(Док.ИнкассовоеПоручениеПереданное, , Ложь);
                        СписокДокументов.Добавить(Док.ИнкассовоеПоручениеПолученное, , Ложь);
                        СписокДокументов.Добавить(Док.ПлатежныйОрдерСписаниеДенежныхСредств, , Ложь);
                        СписокДокументов.Добавить(Док.ПлатежныйОрдерПоступлениеДенежныхСредств, , Ложь);
                         
                        Если СписокДокументов.ОтметитьЭлементы("Укажите, какие списки документов открыть") Тогда
                                Для Каждого НазваниеДокумента из СписокДокументов Цикл
                                       Если НазваниеДокумента.Пометка Тогда
                                               ФормаСписка = Документы[НазваниеДокумента.Значение.Имя].ПолучитьФормуСписка();
                                               ФормаСписка.Открыть();
                                       КонецЕсли;
                                КонецЦикла;
                        КонецЕсли;
                        Как можно организовать подстановку обращения к персоне?
                        ExpandedWrap disabled
                          Процедура ПерсонаОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
                           
                                  Значение = Новый СписокЗначений();
                                  Значение.Добавить("Уважаемый " + Текст);
                                  Значение.Добавить("Уважаемая " + Текст);
                                  Значение.Добавить("Уважаемое " + Текст);
                                  Значение.Добавить("Уважаемые " + Текст);
                                  Значение.Добавить(Текст);
                           
                                  СтандартнаяОбработка = Ложь;
                           
                          КонецПроцедуры
                          Как в командной панели создать подменю с кнопками?
                          ExpandedWrap disabled
                            КнопкиКоманднойПанели = ЭлементыФормы.КоманднаяПанельФормы.Кнопки;
                             
                            // Проверить, нет ли уже на командной панели кнопки "Сформировать".
                            // Если есть - удалить.
                            Индекс = КнопкиКоманднойПанели.Индекс(КнопкиКоманднойПанели.Найти("Сформировать"));
                             
                            Если Индекс = -1 Тогда
                                    Индекс = 0;
                            Иначе
                                    КнопкиКоманднойПанели.Удалить(Индекс);
                            КонецЕсли;
                             
                            // Создать подменю "Сформировать".
                            ПодменюСформировать = КнопкиКоманднойПанели.Вставить(Индекс, "Сформировать", ТипКнопкиКоманднойПанели.Подменю, "Сформировать");
                             
                            // Добавить картинку.
                            ПодменюСформировать.Картинка = БиблиотекаКартинок.Сформировать;
                            ПодменюСформировать.Отображение = ОтображениеКнопкиКоманднойПанели.НадписьКартинка;
                             
                            // Опросить перечисление о возможных вариантах периодичности.
                            Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Перечисление.Периодичность");
                            Выборка = Запрос.Выполнить().Выбрать();
                             
                            //Добавить кнопки к подменю.
                            Пока Выборка.Следующий() Цикл
                                    Период = Выборка.Ссылка;
                                    ПодменюСформировать.Кнопки.Добавить("кн" + Период, ТипКнопкиКоманднойПанели.Действие, "Сформировать за " + Период, Новый Действие("КнопкаСформироватьНажатие"));
                            КонецЦикла;
                             
                            Процедура КнопкаСформироватьНажатие(Элемент)
                             
                                    НазваниеПериодичности = СтрЗаменить(Элемент.Имя, "кн", "");  
                             
                            КонецПроцедуры
                            Как созданной кнопке назначить "горячие клавиши"?
                            ExpandedWrap disabled
                              СозданнаяКнопка.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.L, Истина, Истина,);
                              Как реализовать заполнение возможных значений поля выбора "ОбрабатываемаяТабличнаяЧасть" при заполнении поля ввода "ОбрабатываемыйДокумент"?
                              ExpandedWrap disabled
                                Процедура ОбрабатываемыйДокументПриИзменении(Элемент)
                                 
                                        СписокВыбора = ЭлементыФормы.ОбрабатываемаяТабличнаяЧасть.СписокВыбора;
                                        СписокВыбора.Очистить();
                                 
                                        Если Элемент.Значение <> Неопределено И Не(Элемент.Значение.Пустая()) Тогда
                                               ТабличныеЧасти = Элемент.Значение.Метаданные().ТабличныеЧасти;
                                              
                                               Для Каждого ТабличнаяЧасть из ТабличныеЧасти Цикл
                                                       СписокВыбора.Добавить(ТабличнаяЧасть);
                                               КонецЦикла;
                                        КонецЕсли;
                                 
                                КонецПроцедуры
                                 
                                Процедура ОбрабатываемыйДокументОчистка(Элемент, СтандартнаяОбработка)
                                 
                                        ОбрабатываемаяТабличнаяЧасть = "";
                                 
                                КонецПроцедуры
                                Если пользователь указал несколько дат в поле календаря - как их перебрать?
                                ExpandedWrap disabled
                                  КоллекцияДат = ЭлементыФормы.ПолеКалендаря.ВыделенныеДаты;
                                   
                                  Для каждого ДатаКалендаря из КоллекцияДат Цикл
                                          Сообщить(ДатаКалендаря);
                                  КонецЦикла;
                                  ЭлементыФормы.ПолеКалендаря.РежимВыделения = РежимВыделенияДаты.Множественный;
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (4) 1 2 [3] 4  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0481 ]   [ 17 queries used ]   [ Generated: 28.03.24, 21:18 GMT ]