Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/23: Рейтинг темы: голосов - 23, средняя оценка - 4.65
 Аватар для ErrorEd88
9 / 9 / 0
Регистрация: 28.05.2010
Сообщений: 125
1C 8.x

Обычное приложение. Красивая работа с таблицей значений

27.12.2011, 17:49. Показов 4637. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
К примеру, у таблицы значений есть колонки - организация, контрагент, номенклатура, сумма (выгрузил запрос по регистру в тз). Нужно вычислить сумму конкретной номенклатуры для конкретной организации и контрагенту.
1C
1
2
3
4
5
6
7
8
СуммаНоменклатураТЗ = 0;
Для Каждого ТекСтрокаТЗ Из ТЗ Цикл
Если ТекСтрокаТЗ.Организация = ОрганизацияМакет 
И ТекСтрокаТЗ.Контрагент = КонтрагентМакет 
И ТекСтрокаТЗ.Номенклатура = Выборка.Номенклатура Тогда
СуммаНоменклатураТЗ = СуммаНоменклатураТЗ + ТекСтрокаТЗ.Стоимость;
КонецЕсли;
КонецЦикла;
Можно как-то проще и правильней это сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.12.2011, 17:49
Ответы с готовыми решениями:

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

Работа с таблицей значений
Доброго Вам дня, уважаемые программисты. Прошу помощи в решении задачи в 1С, сама, извините, в этом не бум-бум :( Пыталась сделать сама,...

Работа с таблицей значений (обход строк)
Подскажите как пробежаться по ТЗ. Например: Есть ТЗ с Колонко Адрес, в тз 5 адресов, нужно вывести адреса 1 и 2 , 1 и 3, 1 и 4, 1 и 5,...

8
21 / 21 / 0
Регистрация: 21.12.2011
Сообщений: 62
27.12.2011, 18:04
Ну в принципе код правильный. Можно еще свернуть таблицу и поставить условие на прерывание цикла когда найдешь строку с требуемыми условиями.
0
 Аватар для fimbulwinter
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
27.12.2011, 19:58
сделать необходимую выборку запросом
это быстрее работает, меньший объем кода, читабельно, прокачивает скилл до следующего уровня копрокодерства)))
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
28.12.2011, 00:36
Учитесь работать с запросами правильно, в запросе же можно сразу отобрать все что тебе нужно...
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
28.12.2011, 13:07
Красиво - это по каждой группе условий создавать массив строк ТЗ функцией. Ещё красивее - написать свою небольшую функцию по выгрузке и из массива в таблицу, получив возможность использовать "Итог()"

Из С-Пом
НайтиСтроки (FindRows)
Синтаксис:

НайтиСтроки(<ПараметрыОтбора>)
Параметры:

<ПараметрыОтбора> (обязательный)

Тип: Структура.
Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.
Возвращаемое значение:

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

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

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Метод эффективно использовать для выборки неуникальных значений.
Пример:

// СписокРаботников - реквизит формы для представления информации
// о работниках (тип ТаблицаЗначений).
// В форме расположено табличное поле СписокРаботников, в котором
// показываются данные СписокРаботников.
// С помощью запроса выбирается информация о работниках.
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ
// текст запроса
// ...
";
Запрос.Текст = ТекстЗапроса;
СписокРаботников = Запрос.Выполнить().Выгрузить();
Отбор = Новый Структура();
Отбор.Вставить("ФизЛицо",Справочники.Физ ическиеЛица.ПустаяСсылка());
Строки = СписокРаботников.НайтиСтроки(Отбор);
Если Строки.Количество() > 0 Тогда
ЭлементыФормы.СписокРаботников.ТекущаяСт рока = Строки[0];
КонецЕсли;

Добавлено через 4 минуты
Цитата Сообщение от fimbulwinter Посмотреть сообщение
сделать необходимую выборку запросом
это быстрее работает, меньший объем кода, читабельно, прокачивает скилл до следующего уровня копрокодерства)))
Очень может быть, что ТЗ - это левый источник данных. Правда, и в этом случае ТЗ можно загнать в запрос через временную таблицу. Делал когда-то, навскидку не помню, там фича какая-то
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
28.12.2011, 13:12
Пакетные запросы рулят)))
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
28.12.2011, 13:21
Цитата Сообщение от Dethmontt Посмотреть сообщение
Пакетные запросы рулят)))
Не в них дело. Надо ТЗ как-то прицепить как ВТ... А! Вспомнил! ВЫБРАТЬ ИЗ &ТЗ, только там фича, то ли действительно только через менеджер врем.таб, то ли ещё что
0
 Аватар для fimbulwinter
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
28.12.2011, 13:26
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ВЫБРАТЬ
     1 КАК Маркер,
     *
ПОМЕСТИТЬ ТЗ1
ИЗ
     &ТЗ1 КАК ТЗ1
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
     1 КАК Маркер,
     *
ПОМЕСТИТЬ ТЗ2
ИЗ
     &ТЗ2 КАК ТЗ2
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
     *
ИЗ
     ТЗ1 КАК ТЗ1
          ЛЕВОЕ СОЕДИНЕНИЕ ТЗ2 КАК ТЗ2
          ПО ТЗ1.Маркер = ТЗ2.Маркер
Вот и вся фича

Добавлено через 2 минуты
за работоспособность не отвечаю потому как запрос к двум ТЗ. Возможно придется описывать Имена колонок для каждой ТЗ. А Потом группировки делать.
1
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
28.12.2011, 13:40
Спасибо. Верно. А при пакете можно с менеджером не возюкаться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2011, 13:40
Помогаю со студенческими работами здесь

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

Компиляция (обычное приложение и с БД)
Добрый день! Только-только начинаю копать JAVA, возник вопрос. Использую Netbeans. Написал простую программку, а-ля &quot;Hello,...

1с 8.2 Обычное приложение (интерфейс)
Можно ли как-то в командную панель формы добавить Калькулятор 1С-вский встроенный? Форма открыта модально, поэтому вызов по Ctrl-F2 не...

Обычное графическое приложение виндовс
Если я правильно понимаю, то нужно при создании проекта выбрать &quot;Классическое приложение виндовс&quot;, но при этом у меня выдало, что не...

1c 8.2 Обычное приложение. Уникальность форм
Всем привет. Мне необходимо запустить обработку из документа передав в нее параметры - с этим проблем нет. Затем мне нужно при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru