Ошибка тип не определен таблицазначений

Добавил управляемую форму команду:

&НаКлиенте

Процедура ТабЗнач(Команда)

    Таб = Новый ТаблицаЗначений;

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

Получил ошибку: Тип не определен (ТаблицаЗначений). Проверка: Тонкий клиент.

Пошел в параметры в конфигураторе. На закладке общие переключил на Управляемое приложение и обычное приложение. Не помогло. Также попробовал закладку Запуск 1С:Предприятие — поставил Толстый клиент (обычное приложение).

Вышел из конфигуратора, в окне запуска изменил на Толстый клиент.

В общем, ничего не помогло. Подскажите, пожалуйста.

ТаблицаЗначений Обработка МодульФормы

Автор fsa, 31 янв 2016, 15:16

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

Пытаюсь в Модуле формы Обработки создать ТаблицуЗначений.
ТЗ = Новый ТаблицаЗначений   Выдает ошибку, Тип не определен.
Пытался в глобальном ее написать, ругается что не может передать с сервера на клиент……

Неужели через Реквизит придется таблицу добавлять?


сие действительно факт
1. на клиенте нет типа ТаблицаЗначений
2. с сервера не передается

в чем глобальная задача?

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.



делайте табличную часть, на клиенте её заполняйте, на сервере создавайте документ

Помог? Нажми — Спасибо :)
skype: Soprov1C


Цитата: дфтын от 31 янв 2016, 21:16
делайте табличную часть, на клиенте её заполняйте, на сервере создавайте документ

Я в шоке. А че так сложно? Реквизит ТаблицаЗначений требует меньше ресурсов? в 8.2 вроде все работает…..


СЛОЖНО?

это, а где вы увидели реквизит — таблица значений? мне просто интересно. и причем тут 8.2.

Сдается мне у Вас несоглосование в голове

Помог? Нажми — Спасибо :)
skype: Soprov1C


Цитата: дфтын от 31 янв 2016, 21:40
СЛОЖНО?

это, а где вы увидели реквизит — таблица значений? мне просто интересно. и причем тут 8.2.

Сдается мне у Вас несоглосование в голове

Возможно. Давайте по порядку. Создать табличную часть. Что имели ввиду?


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

Помог? Нажми — Спасибо :)
skype: Soprov1C


Цитата: дфтын от 31 янв 2016, 21:50
я? я имел ввиду создать табличную часть.
Вы не в курсе, что это?
вперед учиться или нанимать программистов. за печеньки.

Обязательно последую вашему совету. Но чуть позже. 1С у меня в догонку к основным обязанностям.
Я разобрался…. Спасибо. но суть от этого не меняется. Зачем создавать табличную часть, когда есть ТаблицаЗначений? Но которую нельзя использовать! Не понимаю……


Помог? Нажми — Спасибо :)
skype: Soprov1C


ТаблицаЗначений Обработка МодульФормы

Автор fsa, 31 янв 2016, 15:16

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

Пытаюсь в Модуле формы Обработки создать ТаблицуЗначений.
ТЗ = Новый ТаблицаЗначений   Выдает ошибку, Тип не определен.
Пытался в глобальном ее написать, ругается что не может передать с сервера на клиент……

Неужели через Реквизит придется таблицу добавлять?


сие действительно факт
1. на клиенте нет типа ТаблицаЗначений
2. с сервера не передается

в чем глобальная задача?

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.



делайте табличную часть, на клиенте её заполняйте, на сервере создавайте документ

Помог? Нажми — Спасибо :)
skype: Soprov1C


Цитата: дфтын от 31 янв 2016, 21:16
делайте табличную часть, на клиенте её заполняйте, на сервере создавайте документ

Я в шоке. А че так сложно? Реквизит ТаблицаЗначений требует меньше ресурсов? в 8.2 вроде все работает…..


СЛОЖНО?

это, а где вы увидели реквизит — таблица значений? мне просто интересно. и причем тут 8.2.

Сдается мне у Вас несоглосование в голове

Помог? Нажми — Спасибо :)
skype: Soprov1C


Цитата: дфтын от 31 янв 2016, 21:40
СЛОЖНО?

это, а где вы увидели реквизит — таблица значений? мне просто интересно. и причем тут 8.2.

Сдается мне у Вас несоглосование в голове

Возможно. Давайте по порядку. Создать табличную часть. Что имели ввиду?


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

Помог? Нажми — Спасибо :)
skype: Soprov1C


Цитата: дфтын от 31 янв 2016, 21:50
я? я имел ввиду создать табличную часть.
Вы не в курсе, что это?
вперед учиться или нанимать программистов. за печеньки.

Обязательно последую вашему совету. Но чуть позже. 1С у меня в догонку к основным обязанностям.
Я разобрался…. Спасибо. но суть от этого не меняется. Зачем создавать табличную часть, когда есть ТаблицаЗначений? Но которую нельзя использовать! Не понимаю……


Помог? Нажми — Спасибо :)
skype: Soprov1C


Anastasia_Sokel, ТаблицаЗначений недоступна на клиенте, есть на сервере. Из своей процедуры вызывай другую, серверную, там и объявляй.

Пользуйся синтакс-помощником, там много полезного:

Кликните здесь для просмотра всего текста

ТаблицаЗначений (ValueTable)
Элементы коллекции:

СтрокаТаблицыЗначений
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора […]. В качестве аргумента передается индекс строки (нумерация с 0).

Свойства:

Индексы (Indexes)
Колонки (Columns)

Методы:

Вставить (Insert)
ВыбратьСтроку (ChooseRow)
ВыгрузитьКолонку (UnloadColumn)
Добавить (Add)
ЗагрузитьКолонку (LoadColumn)
ЗаполнитьЗначения (FillValues)
Индекс (IndexOf)
Итог (Total)
Количество (Count)
Найти (Find)
НайтиСтроки (FindRows)
Очистить (Clear)
Получить (Get)
Свернуть (GroupBy)
Сдвинуть (Move)
Скопировать (Copy)
СкопироватьКолонки (CopyColumns)
Сортировать (Sort)
Удалить (Delete)

Конструкторы:

По умолчанию

Описание:

Таблица значений предназначена для хранения значений в табличном виде. Все основные операции с таблицей производятся именно через этот объект. Он позволяет манипулировать строками таблицы значений и предоставляет доступ к коллекции колонок. Колонки могут быть различных типов (в том числе множественных).

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

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).


Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: ValueTable.

Перенос таблицы значений между клиентом и сервером

16.05.2017

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

Сильно не пинайте.

Все мы сталкивались с ситуацией, когда необходимо с сервера передать данные на клиент. И далеко не всегда это примитивные типы.

Об одном из таких типов я бы сегодня и хотел поговорить.

Речь сегодня о таблицы значений.

Данный тип является мутабельным и при попытке выполнить это действия мы получим ошибку:

{Справочник.НастройкиЗаполненияОбъектов1СДокументооборота.МодульОбъекта(33)}: Ошибка при вызове метода контекста (ПолучитьПрокси)
Прокси = ИнтеграцияС1СДокументооборотВызовСервера.ПолучитьПрокси();
по причине:
Попытка передачи мутабельного значения результата метода ПолучитьПрокси ().

(текст ошибки в каждом случае свой)

Сегодня я выношу на Вашу критику и обозрение один из вариантов решения этой проблемы, а именно преобразование в Массив(может передаваться) из структур и обратно в таблицу.

Функция «ПреобразоватьТаблицуЗначенийВМассив» выполняется на сервере перед передачей данных, а «ПреобразоватьМассивВТаблицуЗначений» уже на клиенте соответственно.

Код этих функций:

// Функция преобразует ТаблицуЗначений в Массив из структур.
//
Функция ПреобразоватьТаблицуЗначенийВМассив(тзДанные) Экспорт

мсДанные = Новый Массив;

// Запишем в массив
Для Каждого СтрокаТЗ Из тзДанные Цикл

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

мсДанные.Добавить(стСтрокаТаблицы);

КонецЦикла;

Возврат мсДанные;

КонецФункции // ПреобразоватьТаблицуЗначенийВМассив()

// Функция преобразует Массив из структур в ТаблицуЗначений.
//
Функция ПреобразоватьМассивВТаблицуЗначений(мсДанные) Экспорт

тзДанные = Новый ТаблицаЗначений;

Для Каждого ЭлементМассива Из мсДанные Цикл
// Рисуем колонки для таблицы
Если тзДанные.Колонки.Количество() = 0 Тогда
Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
тзДанные.Колонки.Добавить(ЗначениеСтруктуры.Ключ);
КонецЦикла;
КонецЕсли;

// Добавляем данные в таблицу
НоваяСтрока = тзДанные.Добавить();
Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
НоваяСтрока[ЗначениеСтруктуры.Ключ] = ЗначениеСтруктуры.Значение;
КонецЦикла;
КонецЦикла;

Возврат тзДанные;

КонецФункции // ПреобразоватьМассивВТаблицуЗначений()

Собственно сабж. В то время, как охотники… зачеркнуто В то время, как Соответствие и Структура — доступны. ГДЕ логика?

Есть конечно мысль — чтобы товарисчи с клюшками вычисления, основаные на ТЗ, не лепили на ТонкомКлиенте по привычке, а переносили на супермегакластеризированные сервера. Трогает такая забота.

а что мешает товарищам с клюшками (которые мануал всё-таки читали) использовать коллекцию (ТаблицаЗначений) на клиенте для своих гадких вычислений?

{МодульУправляемогоПриложения(43,32)}: Тип не определен (ТаблицаЗначений) ЧЯДНТ?

Не, ты ткни меня носом. Я с удовольствием реализую все на ТЗ, ибо уже все написал, и переделывать на Соотвествие — ломает. Вообще задача — Сохранить, Запустить, Удалить файл. Но ВебКлиент с его асинхронностью усложняет это всё до дикости.

В редакторе форм, где окошко с реквизитами формы — добавь новый реквизит и выбери тип ТаблицаЗначений. Колонки тож там добавлять.

+ На сервере чтобы в этот реквизит присвоить ТЗ надо либо либо просто присвоить не получится

Это вижу. Но см. {МодульУправляемогоПриложения(43,32)}

Кстати да, погорячился о полной недоступности ТЗ на клиенте. В упр. формах они доступны.

Твоя функция на клиенте компилируется, потому и ошибка.

Главное отличать ТаблицаЗначений от (ТаблицаЗначений).

Хочешь сказать, что я не смогу сделать так: ? Тоесть, вычисления ТЗ на клиенте невозможны?

Элементы коллекции: ДанныеФормыЭлементКоллекции Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы. Методы: Вставить (Insert) Описание: Предназначен для моделирования коллекций в данных управляемой формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент. См. также: ТаблицаФормы, свойство ВыделенныеСтроки Расширение поля формы для поля календаря, свойство ВыделенныеДаты Глобальный контекст, метод ДанныеФормыВЗначение Глобальный контекст, метод ЗначениеВДанныеФормы УправляемаяФорма, метод ЗначениеВРеквизитФормы УправляемаяФорма, метод РеквизитФормыВЗначение

Тэги:

Комментарии доступны только авторизированным пользователям

ТаблицаЗначений — это программный объект встроенного языка, позволяющий строить произвольные наборы данных в памяти компьютера, отображать их в табличном виде, а также программно и интерактивно манипулировать ими (добавлять, редактировать, удалять и сортировать). 

Таблицы состоят из строк и колонок. Строки располагаются вниз по вертикали, а колонки — вправо по горизонтали. Строки и колонки имеют индексы, по которым к ним можно обращаться напрямую (начинаются с 0). Кроме этого, к колонкам можно обращаться по идентификатору.

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

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

Таблица значений может использоваться явно при создании в коде необходимого количества переменных типа ТаблицаЗначений, либо неявно: при добавлении элемента управления ТабличноеПоле на обычную форму, и ТаблицаФормы — на управляемую. Здесь мы рассмотрим только программную работу с таблицей значений.

Создание таблицы значений

Как и большинство объектов встроенного языка, новая таблица значений может быть создана с помощью оператора Новый:

тз = Новый ТаблицаЗначений;

Колонки таблицы значений

Прежде чем начать работу с таблицей значений, необходимо создать структуру колонок. Каждая колонка характеризуется следующими свойствами:

  1. Имя — идентификатор колонки (может содержать только алфавитные символы, цифры и знаки подчеркивания. Причем, начинаться имя колонки может только с буквы или символа подчеркивания);
  2. Заголовок — представление колонки в диалогах (может содержать произвольные символы);
  3. ТипЗначения — тип значения содержимого ячеек в этой колонке. Если тип не задан, в ячейке можно хранить значения произвольного типа;
  4. Ширина — ширина колонки в диалогах;

Доступ к колонкам производится через свойство Колонки объекта ТаблицаЗначений. Для добавления новой колонки используется метод Добавить():

тз.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
тз.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
тз.Колонки.Добавить("Свойство");//можно хранить произвольные данные

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

найдКолонка = тз.Колонки.Найти("Наименование");
Если найдКолонка = Неопределено Тогда
	Сообщить("Колонка не найдена!");
КонецЕсли;

Перебор колонок выполняется следующим образом:

Для каждого Колонка Из тз.Колонки Цикл 
    Сообщить(Колонка.Имя); 
КонецЦикла;

Для удаления колонки используется метод Удалить():

найдКолонка = тз.Колонки.Найти("Свойство");
Если НЕ найдКолонка = Неопределено Тогда
	тз.Колонки.Удалить(найдКолонка);
КонецЕсли;

Свойства колонки таблицы значений

Имя Тип Описание
Имя Строка символьный идентификатор колонки, по которому к ней можно обращаться из кода
Заголовок Строка строковое представление колонки на форме
ТипЗначения ОписаниеТипов свойство органичивает пространство доступных значений, которые можно указать в данной колонке
Ширина Число ширина колонки на форме (выражается в количестве символов)

Методы коллекции колонок таблицы значений

Вставить() Вставляет новую колонку в указанную позицию коллекции
Добавить() Добавляет новую колонку в конец коллекции
Количество() Возвращает количество колонок в коллекции
Найти() Ищет колонку в коллекции по имени
Очистить() Удаляет все колонки из коллекции
Сдвинуть() Сдвигает колонку влево или вправо
Удалить() Удаляет колонку из коллекции

Строки таблицы значений

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

Добавление и удаление строк

Для добавления новой строки используется метод Добавить() объекта ТаблицаЗначений. Метод возвращает объект СтрокаТаблицыЗначений, с которым доступны дальнейшие манипуляции:

СтрокаТЧ = тз.Добавить();

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

СтрокаТЧ.Наименование = "Стул деревянный";
СтрокаТЧ.Количество = 1;
СтрокаТЧ.Свойство = ТекущаяДата();

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

тз = СтрокаТЧ.Владелец();

Для удаления строки используется метод Удалить() объекта ТаблицаЗначений. Строку можно удалить либо передав методу непосредственно строку, либо ее индекс:

//непосредственное удаление строки
тз.Удалить(СтрокаТЧ);
//удаление строки по индексу
тз.Удалить(тз.Индекс(СтрокаТЧ));

Перебор строк таблицы значений

Для перебора строк удобнее всего использовать оператор цикла Для Каждого. В редких случаях оправдано применение цикла Для:

Для Каждого СтрокаТЧ Из тз Цикл
	ИндСтроки = тз.Индекс(СтрокаТЧ);
КонецЦикла;
//в редких случаях
Для ИндСтроки = 0 По тз.Количество() - 1 Цикл
	СтрокаТЧ = тз.Получить(ИндСТроки);
КонецЦикла;

Поиск строк

В отличие от платформы 1С:Предприятие 7.7 в 8-ке расширен функционал работы с таблицей значений. Поиск можно выполнять не только по значению в колонке (в этом случае будет возвращена первая найденная строка), но и по набору свойств (в этом случае возвращается массив строк):

//поиск первой строки
НайдСтрока = тз.Найти(Номенклатура, "Номенклатура");
//поиск набора строк
ПараметрыПоиска = Новый Структура("Номенклатура", Номенклатура);
мНайдСтроки = тз.НайтиСтроки(ПараметрыПоиска);

Все методы таблицы значений:

Вставить() Вставляет строку на указанное место
ВыбратьСтроку() Позволяет интерактивно выбрать строку в диалоговом окне
ВыгрузитьКолонку() Выгружает значения ячеек указанной колонки в массив значений
Добавить() Добавлет новую строку в таблицу значений
ЗагрузитьКолонку() Загружает значения в ячейки указанной колонки из массива
ЗаполнитьЗначения() Заполняет ячейки указанных колонок определенным значением
Индекс() Возвращает индекс строки таблицы значений
Итог() Возвращает просуммированный итог по колонке таблицы значений
Количество() Возвращает количество строк в таблице значений
Найти() Выполняет поиск строки по значению
НайтиСтроки() Выполняет поиск строк по указанным параметрам
Очистить() Очищает строки таблицы значений
Получить() Возвращает строку по ее индексу
Свернуть() Выполняет сжатие строк и колонок таблицы значений
Сдвинуть() Сдвигает строку вверх или вниз по таблице
Скопировать() Создает новую таблицу значений копированием текущей
СкопироватьКолонки() Создает новую пустую таблицу значений путем копирования колонок текущей таблицы
Сортировать() Выполняет сортировку строк таблицы значений по указанным колонкам
Удалить() Удаляет строку таблицы значений

Иерархию свойств и типов значений, связанных с таблицей значений, схематически можно представить в виде дерева:

Читайте также:

  1. Как объединить таблицы значений
  2. Как программно выгрузить таблицу значений
  3. Как правильно загрузить значений в колонку таблицы значений из массива

Содержание:

1.     Пример с внешней обработкой

2.     Исправление ошибки в 1С

3.     Новое условие при выполнении запроса

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

Разберем на примере почему данная ошибка программы 1С происходит, и как ее избежать при разработке.  

1. Пример с внешней обработкой

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

Предположим, у вас есть таблица значений, заполняемая некоторыми данными, например, наименованием производителей (Рисунок 1).

Пример с внешней обработкой

Рис. 1

Теперь напишем запрос, который будет выводить номенклатуру данных производителей (Рисунок 2).

выводить номенклатуру данных

Рис. 2

При попытке запустить заполнение табличной части 1С 8.3 выдает ошибку «Тип не может быть выбран в запросе» (Рисунок 3).

Тип не может быть выбран

Рис. 3

Данная ошибка при выполнении операции в 1С возникла потому, что в таблице значений не указан тип колонки «Наименование».  

2. Исправление ошибки в 1С

Чтобы исправить ошибку, необходимо явно указать тип при добавлении колонки. Сделать это можно при помощи Описания типов. Укажем наименование строкового типа данных (Рисунок 4).

Тип выбран в запросе

Рис. 4

Также можно указать тип «СправочникСсылка.Производители», но тогда таблица значений не заполнится необходимыми данными, что, впрочем, можно исправить, воспользовавшись поиском по наименованию в справочнике, и подставив найденное значение в поле «Наименование» (Рисунок 5).

Исправление ошибки в 1С

Рис. 5

Но остановимся на типе «Строка».

При попытке выполнить код, возникает новая ошибка программы, говорящая о том, что нельзя сравнивать разные типы (Рисунок 6).

ошибки в 1С

Рис. 6 

3. Новое условие при выполнении запроса 1С

Вернемся к выполнению запроса 1С и изменим его, заменив жесткое сравнение на условие «Подобно».

Запрос примет следующий вид (Рисунок 7).

Новое условие 1С

Рис. 7

В результате мы получим список всей номенклатуры данных производителей (Рисунок 8).

при выполнении запроса 1С

Рис. 8

Специалист компании «Кодерлайн»

Айдар Фархутдинов

akamuza
02.04.2014 23:48 Прочитано: 4841

Есть внешняя обработка WebExport, в ней есть табличная часть КатегорииНоменклатуры.
Пытаюсь проверить тип:
Код 1C v 8.х

 Тип("ВнешняяОбработкаТабличнаяЧастьСтрока.WebExport.КатегорииНоменклатуры")   

и любвлю ошибку Тип не определен
Уже все перепробовал
Тип(«ВнешняяОбработкаТабличнаяЧастьСтрока.WebExport.КатегорииНоменклатуры»)
Тип(«ВнешняяОбработкаТабличнаяЧасть.WebExport.КатегорииНоменклатуры»)

Постоянно эта ошибка.
Единственное, что при тестах добился это работоспособность:

Код 1C v 8.х

 Тип("ВнешняяОбработкаОбъект.WebExport")   

Это срабатывает. Но оно мне ни к чему — просто для теста, что хотябы что-то работает.

В общем, вопрос: как проверить тип для табличной части во внешней обработке?


Изменено 03.04.14 01:27:15 по причине: Правка ошибок

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
03.04.2014 10:23 Ответ № 1

(0) akamuza, приложи обработку или покажи полный текст, так не понятно для чего получается тип и зачем это вообще

akamuza
03.04.2014 11:58 Ответ № 2

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

Сравнение на тип вызывается при проверке перетаскивания, чтобы было понятно, перетаскивают ли ветку дерева, или перетаскивают элемент с табличного поля на ветку дерева. Зависимо от результата срабатывает необходимая процедура.

Примерно так:

Код 1C v 8.х

 Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("СтрокаДереваЗначений") Тогда
// Действия для рекурсивного переноса веток дерева
ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = ТипЗнч("ВнешняяОбработкаТабличнаяЧастьСтрока.WebExport.КатегорииНоменклатуры") Тогда
// Действия для переноса элемента в другую ветку дерева
КонецЕсли;

Так вот, для

Код 1C v 8.х

 ТипЗнч("ВнешняяОбработкаТабличнаяЧастьСтрока.WebExport.КатегорииНоменклатуры")    

ошибка Тип не определен.

Проблему решил так:

Код 1C v 8.х

 ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = ТипЗнч(КатегорииНоменклатуры.Получить(0)) Тогда   

Поскольку табличная часть КатегорииНоменклатуры будет всегда содержать строку, то решение работает.

Но спортивный интерес остался, чтобы решить вопрос правильным образом.


Изменено 03.04.14 12:34:28

Подсказка: Вы получили ответ на свой вопрос — закройте вопрос!

Собственно сабж. В то время, как охотники… зачеркнуто В то время, как Соответствие и Структура — доступны. ГДЕ логика?

Есть конечно мысль — чтобы товарисчи с клюшками вычисления, основаные на ТЗ, не лепили на ТонкомКлиенте по привычке, а переносили на супермегакластеризированные сервера. Трогает такая забота.

а что мешает товарищам с клюшками (которые мануал всё-таки читали) использовать коллекцию (ТаблицаЗначений) на клиенте для своих гадких вычислений?

{МодульУправляемогоПриложения(43,32)}: Тип не определен (ТаблицаЗначений) ЧЯДНТ?

Не, ты ткни меня носом. Я с удовольствием реализую все на ТЗ, ибо уже все написал, и переделывать на Соотвествие — ломает. Вообще задача — Сохранить, Запустить, Удалить файл. Но ВебКлиент с его асинхронностью усложняет это всё до дикости.

В редакторе форм, где окошко с реквизитами формы — добавь новый реквизит и выбери тип ТаблицаЗначений. Колонки тож там добавлять.

+ На сервере чтобы в этот реквизит присвоить ТЗ надо либо либо просто присвоить не получится

Это вижу. Но см. {МодульУправляемогоПриложения(43,32)}

Кстати да, погорячился о полной недоступности ТЗ на клиенте. В упр. формах они доступны.

Твоя функция на клиенте компилируется, потому и ошибка.

Главное отличать ТаблицаЗначений от (ТаблицаЗначений).

Хочешь сказать, что я не смогу сделать так: ? Тоесть, вычисления ТЗ на клиенте невозможны?

Элементы коллекции: ДанныеФормыЭлементКоллекции Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы. Методы: Вставить (Insert) Описание: Предназначен для моделирования коллекций в данных управляемой формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент. См. также: ТаблицаФормы, свойство ВыделенныеСтроки Расширение поля формы для поля календаря, свойство ВыделенныеДаты Глобальный контекст, метод ДанныеФормыВЗначение Глобальный контекст, метод ЗначениеВДанныеФормы УправляемаяФорма, метод ЗначениеВРеквизитФормы УправляемаяФорма, метод РеквизитФормыВЗначение

Тэги:

Комментарии доступны только авторизированным пользователям

Anastasia_Sokel, ТаблицаЗначений недоступна на клиенте, есть на сервере. Из своей процедуры вызывай другую, серверную, там и объявляй.

Пользуйся синтакс-помощником, там много полезного:

Кликните здесь для просмотра всего текста

ТаблицаЗначений (ValueTable)
Элементы коллекции:

СтрокаТаблицыЗначений
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора […]. В качестве аргумента передается индекс строки (нумерация с 0).

Свойства:

Индексы (Indexes)
Колонки (Columns)

Методы:

Вставить (Insert)
ВыбратьСтроку (ChooseRow)
ВыгрузитьКолонку (UnloadColumn)
Добавить (Add)
ЗагрузитьКолонку (LoadColumn)
ЗаполнитьЗначения (FillValues)
Индекс (IndexOf)
Итог (Total)
Количество (Count)
Найти (Find)
НайтиСтроки (FindRows)
Очистить (Clear)
Получить (Get)
Свернуть (GroupBy)
Сдвинуть (Move)
Скопировать (Copy)
СкопироватьКолонки (CopyColumns)
Сортировать (Sort)
Удалить (Delete)

Конструкторы:

По умолчанию

Описание:

Таблица значений предназначена для хранения значений в табличном виде. Все основные операции с таблицей производятся именно через этот объект. Он позволяет манипулировать строками таблицы значений и предоставляет доступ к коллекции колонок. Колонки могут быть различных типов (в том числе множественных).

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

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).


Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: ValueTable.

  • Ошибка тип не определен запрос 1с
  • Ошибка тип листа нетрудоспособности не соответствует фактическому типу листа
  • Ошибка тип serial не существует
  • Ошибка тинькофф неуспешная авторизация
  • Ошибка тинькофф недостаточно данных для совершения платежа