1с таблица значений выгрузить не работает

Как выгрузить ТаблицуЗначений по отбору с условием (зн Программист_НУ

Можно ли в выгрузить таблицу значений по отбору

По Синтаксису В качестве отбора выступает структура,

(«ИмяКолонки», ЗначениеОтбора)
Можно ли как то вписать условие в ЗначениеОтбора, например отобрать все записи Нуф-Нуф

Понял, только запросом.

(4) возможно. за всю практику построителем почти никогда не пользователся. сначала писал быдлоотчеты, а потом сразу на скд перешел.
кстати скд тоже заюзать можно.

только скд возвращает нетипизированную ТЗ

(16) Правильный ответ — it depends.

Есть хороший принцип — располагать алгоритмы обработки поближе к данным (а не наоборот). Если наша ТЗ на 100К строк тянется из базы, то там же нужно и отфильтровать, запросом. Если это ТЧ документа на десяток строк, набитая пользователем, можно и на клиенте перебрать, ничего страшного.

перебор рулит всетаки имхо.
создавть запрос, сувать в него тз(кстати предварительно еще переведя ее в ТЗ с типизированными колонками если нет),Потом в ВТ. Потом из ВТ выбирать.

Нет ребята. проще и экономичнее перебрать чем следовать моде и канонам.

33 Я тебе приводил пример с ARM, ДВК 2. Многие работают в терминалах и кое где вместе с сервером приложений. А по поводу 6-8 летней давности, то они еще ого го какие быстрые кстати
результаты некоторых данных на не топовых машинах девятилетней давности http://www.rsdn.ru/article/alg/tlsd.xml

С такими задачами как фильтр, группировка справится любая машина.

только у меня например ситуация еще хуже

Источник

Выгрузить СКД в таблицу значений и загрузить обратно

В отчете необходимо выгрузить результат СКД в ТЗ, преобразовать ее определенным образом и загрузить обратно в СКД. С выгрузкой проблем не возникло, ТЗ готова. Нашла информацию о том, что для загрузки данных из ТЗ в СКД необходимо в модуль отчета в процедуру ПриКомпоновкеРезультата() добавить следующее:

Пишу в модуль своего отчета конечно, «СтандартнаяОбработка = Ложь;» тоже указываю, просто сейчас не скопировалось почему-то.

Читайте также:  Как настроить датчик teplocom

Даже без точки останова, пробовала просто в процедуре написать сообщить(«»); и никаких сообщений.

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

(7) VitusBering, проверила, кнопка как в стандартных отчетах, такая же процедура выполняется.

(8) antz, да, процедуру по формированию и обработке делаю в модуле формы. Уже пробовала копировать туда же текст модуля, который в моем первом сообщении. В итоге такая ошибка:

Ошибка при вызове метода контекста (Вывести)
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

(11) antz, вот полный текст ошибки

<Форма.Форма.Форма(215)>: Ошибка при вызове метода контекста (Вывести)
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных «Расход»
по причине:
Ошибка при исполнении запроса набора данных
по причине:
<(16, 44)>: Не задано значение параметра «НачалоПериода»
ВзаиморасчетыСПолучателями.Период МЕЖДУ >&НачалоПериода И &КонецПериода

«Расход» — самый первый набор данных в СКД. Ну и конечно когда комментирую текст кода, который должен загружать ТЗ в СКД, то всё работает, такой ошибки нет.

Так а в ТЗ из какой процедуры выгружаете? Из модуля формы?

Если из модуля формы, то из него же нужно вызвать СкомпоноватьРезультат(). Или прямо в нем же дальше делать что нужно.

Источник

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

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

На помощь придут 3 простых способа:

Способ 1: использование ЗначениеВСтрокуВнутр()

Самый простой и быстрый способ — использовать функцию ЗначениеВСтрокуВнутр(), встроенную в платформу. На одной стороне (стороне отправки) мы упаковываем данные во внутренний формат:

На другой (приемной) стороне, мы распаковываем полученные данные:

и продолжаем с ними работу, как будто никуда не передавали.

Способ 2: использование сериализации XML

На платформе 1С:Предприятие 8 большинство типов значений сериализуются (м.б. представлены в строковом виде). Таблица значений — не исключение. На стороне отправки мы упаковываем данные в формат XML:

Дальше мы можем сохранить полученную строку в файле, отправить по почте и все что заблагорассудится. На приемной стороне достаточно будет распаковать эти данные:

Читайте также:  Не работает одометр е34

Способ 3: использование временного хранилища

Механизм временного хранилища предназначен для передачи некоторых значений мутабельного типа между клиентом и сервером (как туда, так и обратно). На стороне отправки мы помещаем данные во временное хранилище и передаем на приемный конец только адрес во временном хранилище:

На приемной стороне достаточно будет получить эти данные из временного хранилища по адресу:

Источник

Как выгрузить табличное поле в таблицу значений?

Суть:
Есть документ с табличным полем в форме документа.
Необходимо выгрузить табличное поле в таблицу значений для дальнейшей обработки.
Табличное поле связано с табличной частью документа, но состав его строк отличается от состава строк табличной части документа в связи с:
1. Наличием вычисляемых полей
2. Установленным отбором

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

(6) Если не проверял, то могу рассказать:
1. про метод «ОформлениеСтроки уже написал выше.
2. «ОформлениЕСтроки» появляется в событии «ПриВыводеСтроки», но там оформление только одной строки
3. В событии «ПриПолученииДанных» появляется «ОформлениЯСтроки» (коллекция элементов «ОформлениЕСтроки»), но эта коллекция содержит только те элементы, которые в данный момент выведены на экран.

Но все равно спасибо за ответ.

(8) Почитай про ПроверитьСтроку() и МЕТОД ОформлениеСтроки(), который не имеет общего с созвучными параметрами процедур ПриВыводеСтроки/ПриПолученииДанных.
В (6) реальный алгоритм: Перебирается не поле, а ТЧ. Проверяется соответствие строки отбору и если да — запрашивается её(этой строки) — ОформлениеСтроки().

ЗЫ. Имхо, перебирать всю ТЧ может оказаться накладнее, чем метод (3).

Спасибо всем за ответы.

П.С.:
Я решил следующим образом:
1. В табличную часть документа добавил как реквизиты все свои расчетные поля). По здравому размышлению это оказалось даже полезным, один из моментов: так как расчетные поля идут также в печатную форму, и документ, сохраненный в базе всегда соответствует тому, который распечатан. А пересчет данных по документу организовал в виде отдельной кнопки, т.о. автоматом 1С не пересчитывает.
2. Когда необходимо обработать те строки, которые в данный момент выведены на экран, с учетом установленных отборов, то считываю данные из табличной части документа методом «НайтиСтроки», в который передаю структуру с параметрами установленного отбора.
2.1. Для формирования структуры отбора, которая передается в НайтиСтроки написал свою функцию обхода ЭлементовОтбора.

Читайте также:  Дум как настроить яркость

Все.
Решение меня на данном этапе устраивает, так что интерес касательно других методов обхода строк табличного поля формы на данный момент только спортивный.
Будет свободное время — перечитаю последние ответы, попробую.

Источник

Выгрузить СКД в таблицу значений и загрузить обратно

В отчете необходимо выгрузить результат СКД в ТЗ, преобразовать ее определенным образом и загрузить обратно в СКД. С выгрузкой проблем не возникло, ТЗ готова. Нашла информацию о том, что для загрузки данных из ТЗ в СКД необходимо в модуль отчета в процедуру ПриКомпоновкеРезультата() добавить следующее:

Пишу в модуль своего отчета конечно, «СтандартнаяОбработка = Ложь;» тоже указываю, просто сейчас не скопировалось почему-то.

Даже без точки останова, пробовала просто в процедуре написать сообщить(«»); и никаких сообщений.

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

(7) VitusBering, проверила, кнопка как в стандартных отчетах, такая же процедура выполняется.

(8) antz, да, процедуру по формированию и обработке делаю в модуле формы. Уже пробовала копировать туда же текст модуля, который в моем первом сообщении. В итоге такая ошибка:

Ошибка при вызове метода контекста (Вывести)
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

(11) antz, вот полный текст ошибки

<Форма.Форма.Форма(215)>: Ошибка при вызове метода контекста (Вывести)
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных «Расход»
по причине:
Ошибка при исполнении запроса набора данных
по причине:
<(16, 44)>: Не задано значение параметра «НачалоПериода»
ВзаиморасчетыСПолучателями.Период МЕЖДУ >&НачалоПериода И &КонецПериода

«Расход» — самый первый набор данных в СКД. Ну и конечно когда комментирую текст кода, который должен загружать ТЗ в СКД, то всё работает, такой ошибки нет.

Так а в ТЗ из какой процедуры выгружаете? Из модуля формы?

Если из модуля формы, то из него же нужно вызвать СкомпоноватьРезультат(). Или прямо в нем же дальше делать что нужно.

Источник

Оцените статью