Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 00:40

Обработка выбранных строк отметкой

Автор Вадим Ф, 27 июл 2018, 12:21

0 Пользователей и 1 гость просматривают эту тему.

Вадим Ф

Добрый день!

Подскажите, пожалуйста как реализовать.

Есть отметка в списке документов
Если ОтмеченныеНакладные.Количество()=0 Тогда
Сообщить("Не отмечен ни один товар!");
Иначе
Сообщить("Отмечены следующие накладные:");
Для Каждого Накладная Из ОтмеченныеНакладные Цикл
  Выбранные = Накладная.Значение.Ссылка;

//ЭтотОбъект
КонецЦикла;
КонецЕсли;


Выбранные - хранит в себе отмеченные строки и списка.
На основании этого документа делаю реализацию товаров и услуг.
Но делается только один, тот который выделен. А нужны те, у которых стоит отметка.

Спасибо)

LexaK

так это у вас не список значений, а таблица на форме, перебирайте ее примерно так


Для каждого лкСтр Из ВашаТаблица Цикл
Если лкСтр.Отметка = Истина Тогда
    //строка отмечена, выполняете нужные действия

КонецЕсли;
КонецЦикла;
если помогло нажмите: Спасибо!

Вадим Ф

Для уточнения приведу весь код

Перем ОтмеченныеНакладные;

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

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

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

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

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

КонецЦикла;
КонецЕсли;

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


ОтмеченныеНакладные = Новый СписокЗначений;

alex0402

Цитата: Вадим Ф от 27 июл 2018, 12:21Если ОтмеченныеНакладные.Количество()=0 Тогда

весь код, кроме главного!
как получена ОтмеченныеНакладные?

если
ОтмеченныеНакладные = Элементы.Список.ВыделенныеСтроки //точно не помню..
то это и есть именно выделенные пользователем. т.е. в данном случает та строка, на которой стоит курсор. Или те, которые пользователь выделил с помощью шифт+стрелка или конторол+левая мышь.

у поля Отметка какой путь к данным?
Спасибо за Сказать спасибо

Вадим Ф

Спасибо всем, кто откликнулся)

Извините, если не понял.
Вы о свойствах?
У отметки вообще нет данных.

AIFrame

В обычных формах так не делается.
Если ты хочешь, чтобы у тебя галочка ставилась для каждой строки индивидуально - это должен быть либо реквизит этой табличной части, либо какое-то внешнее содержимое (Регистр сведений?), которое ты будешь обрабатывать событиями этой ТЧ и обновлять при выводе.
Энивей, то, что тебе нужно, это получить из ТЧ массив строк, в которых есть только Отметка = Истина.
Удивительно, но для этого у ТЧ есть метод - НайтиСтроки(ПараметрыОтбора)
Отбор = Новый Структура;
Отбор.Вставить("Отметка", Истина);
МассивСтрокСОтметкой = ТЧ.НайтиСтроки(Отбор);
Если МассивСтрокСОтметкой.Количество() = 0 Тогда
    Сообщить("блаблабла");
    Возврат;
КонецЕсли;
Для Каждого СтрокаМассива ИЗ МассивСтрокСОтметкой Цикл
    Сообщить(СтрокаМассива.Документ)
КонецЦикла;

Вадим Ф

Спасибо.
Сейчас к сожалению не очень понятно, но работаю над этим.

Вадим Ф

Ребята, к сожалению не получается ничего сделать...

Может кто знает как можно реализовать это!
Просто еще не совсем опытен в этом деле, если кому не трудно подскажите пожалуйста!

alex0402

Цитата: Вадим Ф от 30 июл 2018, 16:08Ребята, к сожалению не получается ничего сделать...

не получается что?
1) опубликуй кусок кода (как можно меньше).
2) что ожидал.
3) что получил.
Добавлено: 30 июл 2018, 16:23


не помещает описание места определения переменных: в коде, реквизиты формы, реквизиты объекта в конфигурации и т.д.
Спасибо за Сказать спасибо

Sy4a

Что именно не получается? где застряли? список хоть документов получилось получить? код своей кнопки для создания документов на основания покажите.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск