helpf.pro
Регистрация
 +1 
Распечатать

1С 8.3 : Табличная часть ~ Как получить массив строк по условию (отбору)?

Для УП:

Код 1C v 8.3
 
// Отбор на форме
&НаКлиенте
....
ФМ=Новый ФиксированнаяСтруктура("КлючСвязи",Элементы.ДанныеБезКоррекции.ТекущиеДанные.КлючСвязи);
Элементы.СписокПодразделений.ОтборСтрок=ФМ;
Код 1C v 8.3
 //Функция получает записи табличной части согласно установленному отбору
Функция ПолучитьЗаписиСогласноОтбору(ТабличноеПолеИсточник)

ОтборСтрок = ТабличноеПолеИсточник.ОтборСтрок;
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличноеПолеИсточник.Значение); 
Для Каждого ЭлементОтбора Из ОтборСтрок Цикл     
Если ЭлементОтбора.Использование Тогда
НовыйОтбор = ПостроительЗапроса.Отбор.Добавить(ЭлементОтбора.Имя);        
НовыйОтбор.Использование = Истина;         
НовыйОтбор.ВидСравнения = ЭлементОтбора.ВидСравнения;       
НовыйОтбор.ЗначениеС = ЭлементОтбора.ЗначениеС;        
НовыйОтбор.ЗначениеПо = ЭлементОтбора.ЗначениеПо;        
НовыйОтбор.Значение = ЭлементОтбора.Значение;     
КонецЕсли;
КонецЦикла;


Таблица = ПостроительЗапроса.Результат.Выгрузить();
МассивСтрок = Новый Массив;
Для Каждого Стр ИЗ Таблица Цикл
СтруктураПоиска = Новый Структура;
Для Каждого Колонка Из Таблица.Колонки Цикл
СтруктураПоиска.Вставить(Колонка.Имя, Стр[Колонка.Имя]);
КонецЦикла;
НайденыеСтроки = ТабличноеПолеИсточник.Значение.НайтиСтроки(СтруктураПоиска);
Если НайденыеСтроки.Количество() > 0 Тогда
МассивСтрок.Добавить(НайденыеСтроки[0]);
КонецЕсли;
КонецЦикла;

Возврат МассивСтрок;

КонецФункции

Для Обычных форм:

Код 1C v 8.х
 ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ДокСсылка", ДанныеПоШК.Объект);
НайденныеСтроки = ПакетДокументов.НайтиСтроки(ПараметрыОтбора);

// Подробнее
СтруктураОтбора = Новый Структура("ВидДокумента, Контрагент", ПФ, ?(Контр = Неопределено, Справочники.Контрагенты.ПустаяСсылка(), Контр));
ПакетДокументов = ЗадачаОбъект.ПакетДокументов;
МассивСтрок = ПакетДокументов.НайтиСтроки(СтруктураОтбора);
Если МассивСтрок.Количество() Тогда
Для Каждого СтрокаМассива Из МассивСтрок Цикл
СтрокаМассива.ДобавленоПользователем = Истина;
СтрокаМассива.Пользователь           = ПараметрыСеанса.ТекущийПользователь;
СтрокаМассива.ДатаВремя = ТекущаяДата();
КонецЦикла;
КонецЕсли;

//или
ТЧ = ПромежуточнаяНакладная.Выгрузить();
ТЧ.Свернуть("СхемаПродажи");
СтрокаСПустойСП = ТЧ.НайтиСтроки(Новый Структура("СхемаПродажи", Справочники.СхемыПродаж.ПустаяСсылка()));

Если ТЧ.Количество() - СтрокаСПустойСП.Количество() > 1 Тогда
Если Вопрос("Сбросить все схемы в строках?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
НесколькоСхем = Истина;
Возврат;
КонецЕсли;
КонецЕсли;

Для каждого СтрокаПН из ПромежуточнаяНакладная Цикл
Если СтрокаПН.Номенклатура.ВидНоменклатуры.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Услуга Тогда
СтрокаПН.СхемаПродажи = СхемаПродажи;
КонецЕсли;
КонецЦикла;
Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 29090
 +1 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э
Google maps : вывод точек на карту и режим панорамы 9
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.