Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 читайте на сайте

1C Выделить Строку в Таблице Значений 1C • Таблицы и поля

При этом левая таблица справочник Номенклатура , правая таблица виртуальная таблица Остатки регистра накопления ОстаткиНоменклатуры.

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Чтобы в тексте запроса динамического списка можно было использовать несколько таблиц, в настройках динамического списка необходимо установить галочку Произвольный запрос. ЮНИТ 12. ТАБЛИЦА ЗНАЧЕНИЙ В ЯЗЫКЕ 1C (В ПРИМЕРАХ) — Основы языка программирования 1С 8.3 Обращайтесь в форму связи

1C Выделить Строку в Таблице Значений 1C

ТабЗнач.НоваяКолонка(«Номер»);
ТабЗнач.НоваяКолонка(«Сотрудник»);
ТабЗнач.НоваяКолонка(«Должность»);
ТабЗнач.НоваяКолонка(«Оклад»);

//можно указать тип данных каждой колонки
//если тип данных колонки не указан, то можно хранить данные любого типа
Синтаксис: НоваяКолонка(, , , , , , , )

ТабЗнач.НоваяКолонка(«Номер»,»Число»,10,0);
ТабЗнач.НоваяКолонка(«Сотрудник»,»Справочник.Сотрудники»);
ТабЗнач.НоваяКолонка(«Должность»,»Справочник.Должности»);
ТабЗнач.НоваяКолонка(«Оклад»,»Число»,10,2);

ТабЗнач.НоваяСтрока();
ТабЗнач.Номер = 1;
ТабЗнач.Сотрудник = «Иванов Иван Иванович»; //следите за типом колонки!
ТабЗнач.Должность = «Программист»;
ТабЗнач.Оклад = 20000;

ТабЗнач.НоваяСтрока();
ТабЗнач.Номер = 2;
ТабЗнач.Сотрудник = «Петров Петр Петрович»;
ТабЗнач.Должность = «Бухгалтер»;
ТабЗнач.Оклад = 10000;

//обычно строки добавляются в цикле
СпрСотр = СоздатьОбъект(«Справочник.Сотрудники»);
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
. ТабЗнач.НоваяСтрока();
. ТабЗнач.Номер = СпрСотр.Код;
. ТабЗнач.Сотрудник = СпрСотр.ТекущийЭлемент(); //следите за типом колонки!
. ТабЗнач.Должность = СпрСотр.Должность;
. ТабЗнач.Оклад = СпрСотр.Оклад;
КонецЦикла;

ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Сообщить(ТабЗнач.Сотрудник);
КонецЦикла;

2-й способ.

Для НомерСтроки = 1 По ТабЗнач.КоличествоСтрок() Цикл
. ТабЗнач.ПолучитьСтрокуПоНомеру(НомерСтроки);
. Сообщить(ТабЗнач.Сотрудник);
КонецЦикла;

//сортировать по должности по возрастанию
ТабЗнач.Сортировать(«Должность+»);

//сортировать по должности по возрастанию, а внутри должности по убыванию оклада
ТабЗнач.Сортировать(«Должность+,Оклад-«);

Синтаксис: НайтиЗначение(,,)
Возвращает число: 0 — значение не найдено; 1 — значение найдено
Если указан параметр , то поиск производится только по заданной строке
Если указан параметр , то поиск производится только по заданной колонке

Какую часть дохода тратите на еду?
До 50%Больше 50%

номстр = 0;
Если ТабЗнач.НайтиЗначение (10000, номстр, «Оклад») = 1 Тогда
. ТабЗнач.ПолучитьСтрокуПоНомеру(номстр);
. Сообщить(ТабЗнач.Сотрудник);
КонецЕсли;

//получить итог по колонке можно методом Итог
ВсеОклады = ТабЗнач.Итог(«Оклад»)

//часто требуется группировать строки и подсчитывать итоги по группам,
//в этом случае применяется метод Свернуть

//проссумировать оклады по каждой должности
ТабЗнач.Свернуть(«Должность»,»Оклад»);

//Можно группировать и суммировать сразу по нескольким колонкам
ТабЗнач.Свернуть(«Категория, Должность»,»Оклад,Налог»);

1с как получить текущую строку табличной части

Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице значение в массиве тоже будет измененным.

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Так как при удалении строки из таблицы значений следующая строка становится текущей, то указанная ниже программа может удалить НЕ ВСЕ необходимые строки. 1с получить номер строки таблицы значений. Обращайтесь в форму связи

Копирование строк из таблицы 1С

В новых конфигурациях появилась замечательная возможность – копировать строки с содержимым, для этого просто выберите нужные строки, можно выбрать сразу несколько через зажатую клавишу Ctrl на клавиатуре, и через правую кнопку мыши вызовем контекстное меню, где будут пункты: «Скопировать строки» и «Вставить строки», для начала выберем «Скопировать строки».

Теперь мы может вставить строки, например, в эту же табличную часть или совсем в другой документ, например, в «Реализацию товаров и услуг», так же через правую кнопку мыши — «Вставить строки».

Учебник 1С.

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

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Помимо ключевого слова СУММА можно использовать другие агрегатные функции КОЛИЧЕСТВО , КОЛИЧЕСТВО РАЗНЫХ , МАКСИМУМ , МИНИМУМ , СРЕДНЕЕ. Решение задач по управляемым формам — Тема № 10: Как реализовать заполнение табличной части документа при помощи формы подбора, Курсы по 1С Обращайтесь в форму связи

В запросе 1C ЗНАЧЕНИЕ () можно использовать для указания предопределенных значений, таких как значения перечисления, пустую ссылку или значение предопределенного элемента (справочника, плана счетов, ПВХ и т.д).

Тип данных можно проверить следующим образом: с помощью функций ТИП() и ТИПЗНАЧЕНИЯ() или с помощью логического оператора ССЫЛКА.

Оператор Выразить в запросах 1С служит для преобразования типов данных.

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

Горящие товары с бесплатной доставкой
 «AliExpress Россия» работает отдельно от глобального «AliExpress» принадлежащего Alibaba. Он не зависит от мировых банковских систем и не попал под санкционный список со стороны США и Великобритании. Из Китая соответственно тоже можно заказывать ничего не опасаясь.

В практическом применении оператор Выразить() очень часто используется для преобразования полей неограниченной длины, потому что поля неограниченной длины нельзя отбирать, группировать и тд. Если такие поля не преобразовывать, Вы получите ошибку Нельзя сравнивать поля неограниченной длины и поля несовместимых типов.

Лайфхаки 1С – чудеса с табличной частью документа!

В запросе 1C ЗНАЧЕНИЕ () можно использовать для указания предопределенных значений, таких как значения перечисления, пустую ссылку или значение предопределенного элемента (справочника, плана счетов, ПВХ и т.д).

Тип данных можно проверить следующим образом: с помощью функций ТИП() и ТИПЗНАЧЕНИЯ() или с помощью логического оператора ССЫЛКА.

Оператор Выразить в запросах 1С служит для преобразования типов данных.

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

В практическом применении оператор Выразить() очень часто используется для преобразования полей неограниченной длины, потому что поля неограниченной длины нельзя отбирать, группировать и тд. Если такие поля не преобразовывать, Вы получите ошибку Нельзя сравнивать поля неограниченной длины и поля несовместимых типов.

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

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Технология запросов в 1С не предполагает использование ТЗ в качестве источников данных, но это ограничение легко можно обойти с помощью менеджера временных таблиц. 1с управляемые формы текущая строка таблицы. Обращайтесь в форму связи

Как получить и обойти выделенные строки табличной части

Для вывода информации из табличной части объекта служит элемент формы Табличное поле . Для включения возможности выделения нескольких строк на табличном поле нужно установить значение Множественный у его свойства Режим выделения .

Для получения перечня выделенных строк используется следующий код:

Для того чтобы обойти выделенные строки используется цикл Для каждого :

ВыделенныеСтроки= ЭлементыФормы. ИмяТабличногоПоля. ВыделенныеСтроки;

Установка текущей строки в Таблице

Как программно заполнить реквизиты строки табличной части

Если нужно программно заполнить реквизиты строки табличной части, которую добавляет пользователь, необходимо использовать обработчик события табличной части ПриНачалеРедактирования .

Создаваемая обработчиком процедура имеет три параметра:

  • Элемент — содержит элемент управления ТабличноеПоле .
  • НоваяСтрока — булево. Содержит значение Истина , если добавляется новая строка табличной части, и Ложь, если пользователь начал редактировать уже существующую строку.
  • Копирование — булево. Содержит значение Истина , если пользователь копирует строку, и Ложь в остальных случаях.

Рассмотрим пример. Допустим, нам нужно заполнить реквизит табличной части СчетУчета , в случае, когда добавляется новая строка. При редактировании существующей строки изменять счет учета не нужно.

Процедура ТабличнаяЧастьПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)

//Если пользователь редактирует существующую строку, то ничего не делаем
Если НЕ НоваяСтрока Тогда
Возврат;
КонецЕсли ;

//Если же строка новая, устанавливаем счет учета
ТекСтрока = Элемент. ТекущиеДанные; //Получили текущую строку табличной части
ТекСтрока. СчетУчета = ПланыСчетов. Хозрасчетый. НужныйСчетУчета;
КонецПроцедуры

Для начала нужно уяснить, что есть объект который содержит данные, например ДанныеФормыКоллекция и есть объект который отображает данные визуально — Таблица.

В Таблице есть только текущая строка, с помощью неё нельзя узнать все существующие значения ДанныеФормыКоллекция с которыми она связана. В свою очередь у ДанныеФормыКоллекция нет текущей строки. Чтобы связать эти объекты в 1с используется Идентификатор, ведь строки порядок строк можно изменить как в визуальной части так и в данных, но свзяь при этом не должна нарушиться.

У формы есть реквизит ТЗ типа (ТаблицаЗначений) — в скобках потому, что фактический тип — ДанныеФормыКоллекция

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts

Добавить комментарий

*