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

Хранилище

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

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



> В ТЧ обработки изменить данные для отфильтрованных записей          
Constantus Подменю пользователя
сообщение 14.03.18, 9:45
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Написал некую обработку.
Создал для нее форму с табличной частью "Детально" и командной панелью с классическими действиями по фильтрам "Установить отбор и сортировку списка"
Одним словом всё работает и придраться вроде не к чему, но...

Есть у меня в этой табличной части поле "Да" (булево). Это булево отвечает за дальнейшие действия под данной обработке, типа если в этой строке есть "Да" = истина, то выполнять нужно.
Так же есть кнопка, которая делает поле "да" = истина программно.

    Для каждого СтрокаТабличнойЧасти Из Детально Цикл
        СтрокаТабличнойЧасти.Да = Истина;
    КонецЦикла;



Встал вопрос. В ТЧ появилось 100 записей. Я фильтром отбираю и вывожу на экран только 20 записей. Как программно установить значение "Да"= истина только для отфильтрованных данных в ТЧ обработки?

Valerka Подменю пользователя
сообщение 14.03.18, 14:08
Сообщение #2

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

НайтиСтроки()
НакладываеТЕ такой-же фильтр, как ив программе, перебираеТЕ и меняеТЕ.


 ! 

Правила: 1
 


Сообщение отредактировал logist - 14.03.18, 20:28


Signature
Разум, не имеющий цели, всегда блуждает в потёмках.

Bernet Подменю пользователя
сообщение 14.03.18, 14:43
Сообщение #3

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

Constantus @ Сегодня, 9:45 * ,
Получить отфильтрованные строки можно так:
&НаКлиенте
Процедура Команда1(Команда)
    
    ИдентификаторыВыбраныхСтрок= Новый Массив;
    
    Для Каждого СтрокаТаблицыФормы Из Объект.ТабличнаяЧасть1 Цикл
        ИдентификаторСтроки = СтрокаТаблицыФормы.ПолучитьИдентификатор();
        Если Элементы.ТабличнаяЧасть1.ПроверитьСтроку(ИдентификаторСтроки) Тогда
            ИдентификаторыВыбраныхСтрок.Добавить(ИдентификаторСтроки);
        КонецЕсли;
    КонецЦикла;
    
    ОбработатьСтрокиТаблицыНаСервере(ИдентификаторыВыбраныхСтрок);
    
КонецПроцедуры

&НаСервере
Процедура ОбработатьСтрокиТаблицыНаСервере(ИдентификаторыВыбраныхСтрок)
    
    ВыбраныеСтроки = Новый Массив;
    
    Для Каждого ИдентификаторСтроки Из ИдентификаторыВыбраныхСтрок Цикл
       ОтфильтрованнаяСтрока = Объект.ТабличнаяЧасть1.НайтиПоИдентификатору(ИдентификаторСтроки);
        ОтфильтрованнаяСтрока.Реквизит1 = "Некая строка";    
    КонецЦикла;

КонецПроцедуры

Объект.ТабличнаяЧасть1 - это ваша таб. часть


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Constantus Подменю пользователя
сообщение 14.03.18, 14:48
Сообщение #4

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Valerka @ Сегодня, 17:08 * ,

Вот написал код с предложенным

    Отбор = Новый Структура;
    Отбор.Вставить("Наименование", "Кредит 3 дн.");
    
    НайденныеСтроки = Детально.НайтиСтроки(Отбор);
    
    Для Каждого Стр из НайденныеСтроки Цикл
        Стр.ДА = Истина;
    КонецЦикла;


Отработал, но я здесь жестко прописал фильтрованное значение. А как вытащить значение из фильтра?
Я в фильтре на форме поставил на "Наименование" содержит "3 дн"

А здесь получается должно совпадать наименование полностью ("Наименование" - текстовое значение)

Bernet Подменю пользователя
сообщение 14.03.18, 14:53
Сообщение #5

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

Constantus @ Сегодня, 14:48 * ,
Сделайте как я предложил выше и не надо будет играться с накладыванием фильтра =) Сразу получите идентификаторы уже отобранных строк, дальше по ним получаете строку и делаете с ней что хотите


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Constantus Подменю пользователя
сообщение 14.03.18, 15:09
Сообщение #6

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Bernet @ Сегодня, 17:43 * ,

У меня обычные формы. Попробовал переделать код, не помогло...

Bernet @ Сегодня, 17:53 * ,

Для Каждого СтрокаТаблицыФормы Из ЭлементыФормы.Детально Цикл


{Обработка.МассоваяПометкаНаУдалениеДоговоров.Форма.Форма.Форма(200)}: Итератор для значения не определен
    Для Каждого СтрокаТаблицыФормы Из ЭлементыФормы.Детально Цикл



Ваш код

Для Каждого СтрокаТаблицыФормы Из Объект.ТабличнаяЧасть1 Цикл

Bernet Подменю пользователя
сообщение 14.03.18, 15:26
Сообщение #7

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

Constantus @ Сегодня, 15:09 * ,
извиняюсь проморгал - мне казалось вы раньше по упр формам вопросы задавали)
вот такой изврат для обычных форм сработает:
        ТЗ = ЭлементыФормы.ТабличнаяЧасть1;
    
    ДанныеТаблицы = Неопределено;
    
    Выполнить("ДанныеТаблицы="+ТЗ.Данные);
    
    Для Каждого СтрокаТЗ ИЗ ДанныеТаблицы Цикл
        
        ТЗ.ТекущаяСтрока = СтрокаТЗ;
        Если ТЗ.ТекущаяСтрока = СтрокаТЗ Тогда // попали в отбор
            
            СтрокаТЗ.Реквизит1 = "Некое значение";    
            
        КонецЕсли;
        
    КонецЦикла;


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

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

Constantus Подменю пользователя
сообщение 14.03.18, 15:31
Сообщение #8

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Bernet @ Сегодня, 18:26 * ,

Благодарю, сработало...

Что это такое:

Выполнить("ДанныеТаблицы="+ТЗ.Данные);
?

Bernet Подменю пользователя
сообщение 14.03.18, 15:36
Сообщение #9

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

Constantus @ Сегодня, 15:31 * ,
Команда на запуск фонового задания - в данном контексте это одна строка кода, которая вычитывает данные таблицы формы и запихивает результат в локальную переменную.


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

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


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

 

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