Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> отбор в табличной части          
alex040269 Подменю пользователя
сообщение 08.10.13, 19:14
Сообщение #1

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Доброе время суток.
Подскажите, пожалуйста, как обойти строки табчасти, соответсвующие отбору.

Конкретно интерисует табличная часть "Неявки" обработки "Анализ неявок" из ЗиУП.

Спасибо.




Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Hokum Подменю пользователя
сообщение 08.10.13, 19:40
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 37
Из: Киев
Спасибо сказали: 24 раз
Рейтинг: 0

Можно использовать НайтиСтроки()

ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Сотрудник", Сотрудник);
НайденныеСтроки = Неявки.НайтиСтроки(ПараметрыОтбора);


Для каждого Строка из НайденныеСтроки Цикл

КонецЦикла

Ardi Подменю пользователя
сообщение 08.10.13, 19:44
Сообщение #3

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Запрос к источнику данных.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Hokum Подменю пользователя
сообщение 08.10.13, 19:50
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 37
Из: Киев
Спасибо сказали: 24 раз
Рейтинг: 0

Если отбор сложнее одного параметра, то запрос конечно.

Ardi Подменю пользователя
сообщение 08.10.13, 20:04
Сообщение #5

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Или источник данных это для журнала документов?


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

alex040269 Подменю пользователя
сообщение 08.10.13, 21:27
Сообщение #6

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Пользователь заполняет, табличную часть, нажимает правую кнопку мыши, устанавливает произвольный отбор.
Затем нажимает кнопку на панели под которой код:

Для Каждого Стр Из Неявки Цикл
   Стр.Пометка = Истина
КонецЦикла


Нужно цикл заменить так, чтобы обрабатывались не все строки,а только строки, удовлетворяющие отбору пользователя.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

logist Подменю пользователя
сообщение 09.10.13, 8:00
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Я вот не помню точно, но вроде можно получить текущий отбор, а дальше как написали выше - через НайтиСтроки.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

alex040269 Подменю пользователя
сообщение 09.10.13, 8:12
Сообщение #8

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

в общем ничего не придумалось кроме:
Функция СоответсвуетОтбору(СтрокаТЧ,ОтборСтрок)
    Для Каждого Отбор Из ОтборСтрок Цикл
        Если Не Отбор.Использование Тогда
            Продолжить;
        КонецЕсли;
        Если (Отбор.ВидСравнения = ВидСравнения.Больше И СтрокаТЧ[Отбор.Имя] <= Отбор.Значение )
            Или     (Отбор.ВидСравнения = ВидСравнения.БольшеИлиРавно И СтрокаТЧ[Отбор.Имя] < Отбор.Значение)
            Или     (Отбор.ВидСравнения = ВидСравнения.Меньше И СтрокаТЧ[Отбор.Имя] >= Отбор.Значение)
            Или     (Отбор.ВидСравнения = ВидСравнения.МеньшеИлиРавно И СтрокаТЧ[Отбор.Имя] > Отбор.Значение)
            Или     (Отбор.ВидСравнения = ВидСравнения.НеРавно И СтрокаТЧ[Отбор.Имя] = Отбор.Значение)
            Или     (Отбор.ВидСравнения = ВидСравнения.Равно И СтрокаТЧ[Отбор.Имя] <> Отбор.Значение) Тогда
            Возврат Ложь;
        КонецЕсли;    
    КонецЦикла;
    Возврат Истина;    
КонецФункции


функцию еще нужно дополнять.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Ardi Подменю пользователя
сообщение 09.10.13, 9:42
Сообщение #9

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

ПостроительЗапроса = Новый ПостроительЗапроса; 
    ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличноеПолеЗаказПокупателя);
    ПостроительЗапроса.Выполнить();
    ТЗ = ПостроительЗапроса.Результат.Выгрузить();


Сообщение отредактировал logist - 09.10.13, 9:50


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: alex040269,

alex040269 Подменю пользователя
сообщение 09.10.13, 14:49
Сообщение #10

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Я, наверное, что-то недопонял, но у меня получилось вот так:
    ПостроительЗапроса = Новый ПостроительЗапроса;
    ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Неявки);
    
    Для Каждого Элемент Из ЭлементыФормы.Неявки.ОтборСтрок Цикл
        Если Элемент.Использование Тогда
            НовыйЭлемент = ПостроительЗапроса.Отбор.Добавить(Элемент.ПутьКДанным);
            НовыйЭлемент.ВидСравнения = Элемент.ВидСравнения;
            ЗаполнитьЗначенияСвойств(НовыйЭлемент,Элемент);
        КонецЕсли;
    КонецЦикла;
    
    ПостроительЗапроса.Выполнить();
    ТЗ = ПостроительЗапроса.Результат.Выгрузить();
    
    Для Каждого СтрокаТЧ Из ТЗ Цикл
        Если СтрокаТЧ.ДублирующаясяСтрока Тогда Продолжить; КонецЕсли;
        Неявки[СтрокаТЧ.НомерСтроки-1].Отметка = Истина
    КонецЦикла;


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Ardi Подменю пользователя
сообщение 10.10.13, 0:45
Сообщение #11

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

alex040269,
Может быть. Я уже точно не помню как выглядит именно тот код и где его подглядеть.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Batchir Подменю пользователя
сообщение 10.10.13, 8:19
Сообщение #12

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

В типовых конфах (по крайней мере в УПП) есть такая функция
ОбщиегоНазначения.ОтобратьСтрокиПоКритериям
Вроде она как раз делает то что нужно.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 12.06.24, 10:46
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!