Таблица Товары, значение колонки Единица измерения не заполнено |
Я |
22.09.18 — 17:08
Добрый вечер! Подскажите, пожалуйста, при записи чека выдает сообщение : Таблица товаров, значение колонки Единица измерения не заполнено! Строка 13, что может быть? Все заполнено,Я посмотрела, куда копать?
1 — 22.09.18 — 17:09
2 — 22.09.18 — 17:15
Я уже буду таки молчать про отладчик…
Проверь единицы в товаре. ВСЕ единицы.
И пошагово посмотри.
3 — 22.09.18 — 17:17
(2) все заполнены единицы, посмотрела
4 — 22.09.18 — 17:17
(2) прям у каждой номенклатуры?
5 — 22.09.18 — 17:18
(2) или только под номером 13 строки
6 — 22.09.18 — 17:18
(2) отладчик сейчас не вариант, я не на работе
7 — 22.09.18 — 17:34
Блин…
А я тут распинаюсь, как мысь по древу… А она, видите-ли, не на работе…
Совесть есть? Или как? Тоже на работе забыла?
8 — 22.09.18 — 17:43
Вольно Анисе,сидя на Карибских островах, на мисте адинесников тролить.
9 — 22.09.18 — 17:56
(7) я по тим вьюеру подключалась
10 — 22.09.18 — 18:03
(7) у меня суббота и воскресенье выходной
11 — 22.09.18 — 18:22
(7) смотрите, я попробовала удалить эту строку, на которую ругалась программа, там в документе всего было 15 строк; так вот я удалила строку, и программа все равно продолжает ругаться, хотя там другая номенклатура стала
12 — 22.09.18 — 18:23
(11) + 13 строку удалила, а программа все равно ругается
13 — 22.09.18 — 18:23
(12) или тут только отладчиком можно проверить?
14 — 22.09.18 — 18:29
Удали все строки
15 — 22.09.18 — 18:32
(14) а потом? по новой все заполнить?
16 — 22.09.18 — 18:44
В самое единице измерения заполнена базовая ЕИ?
17 — 22.09.18 — 18:46
(15) Потом можно будет заполнить лист формата А4, чистый. Шариковой ручкой. От руки. …
18 — 22.09.18 — 18:51
(16) да
19 — 22.09.18 — 18:51
(15) там есть кнопка Скопировать, чтоб ты знала. Копируешь документ, и на копии тренируешься. Удаляешь и добавляешь строки.
20 — 22.09.18 — 18:55
(19) а ведь ошибку так не увидишь? только когда по кассе чек пробиваешь ошибка выходит
21 — 22.09.18 — 19:12
(19) я имею в виду, что нельзя же пробивать чек по копии документа? потом на документ оригинал же чек не переделаешь?
22 — 22.09.18 — 19:24
(21) попробуй поиском поискать в конфигурации слово «Таблица Товары, значение колонки»
AnisaL
23 — 22.09.18 — 19:32
(22) уже не сегодня, кассир смену закрыла, прийдется потом задним числом чек пробивать
Содержание
- Альфа-Авто:. Редакция 4.1 (8.2). помогите победить характеристики номенклатуры
- Ввод остатков из файла — свертка табличной части
- Таблица значений
- Как можно создать новую таблицу значений?
- Как добавить новую колонку с определенным типом и заголовком?
- Как добавить новые строки?
- Как выгрузить результат запроса в таблицу значений?
- Как обойти в цикле все строки таблицы значений?
- Как сделать выборку строк в таблице значений с отбором?
- Как выполнить сортировку?
- Как вычислить итоги по колонке?
- Как сделать копию таблицы значений?
- Как свернуть таблицу значений по колонке и суммировать по количеству?
- Как найти строку в таблице значений по значению?
Альфа-Авто:. Редакция 4.1 (8.2). помогите победить характеристики номенклатуры
Добрый день! Пишу загрузку остатков номенклатуры в документ «Вводостатковтоваров «(Альфа-Авто: Автосалон+Автосервис+Автозапчасти. Редакция 4.1 (4.1.01.20), платформа 8.2 (8.2.14.533))из dbf-файла. Не получается победить загрузку в табличную часть, загружаю запчасти, в справочнике «ТипыНоменклатуры» стоит «Учет по характеристикам не ведется» , как это отразить в обработке, чтобы не было вот такой ругани : Заполняется накладная номер ПРН0001951 поставщик
При записи обнаружены ошибки :
Таблица значение колонки не заполнено ! Строка номер 1
Из-за возникших ошибок операция записи была отменена.
сама процедура:
Процедура ЗагрузкаИзДбф(Док)
Контрагент=справочники.Контрагенты;
Дог=справочники.ДоговорыВзаиморасчетов;
склад=справочники.СкладыКомпании;
Номенклатура=Справочники.Номенклатура;
Единица=справочники.ЕдиницыИзмерения;
ЕдиницаБ=справочники.КлассификаторЕдиницИзмерения;
Орг=справочники.Организации;
ФОрг=Орг.ПолучитьФормуВыбора();
орг=Форг.ОткрытьМодально();
БД= Новый XBase;
ИмяФ =»tov.dbf»;
Путь = «C:/temp»;
Если Не НайтиДБФ(Путь,ИмяФ) Тогда
выборФайла(ИмяФ);
Иначе
имяФ = путь+»/»+ИмяФ;
КонецЕсли;
БД.ОткрытьФайл(ИмяФ);
БД.Кодировка=КодировкаXBase.OEM;
//Флаг=1;
ТекНом=»»;
Для а=1 по БД.КоличествоЗаписей() Цикл
БД.Перейти(а);
Самномер=СтрЗаменить(БД.DOCNO, Символы.НПП, «»);
Если ТекНом<>Самномер Тогда
Док=Документы.ВводОстатковТоваров.СоздатьДокумент();
Док.Дата = БД.DOCDATE;
ВыборкаДог=Дог.Выбрать(,Док.Контрагент);
ВыборкаДог.следующий();
//Договор=ВыборкаДог.ПолучитьОбъект();
Сообщить(«Заполняется накладная номер «+ строка(Док.Номер)+» поставщик «);
//Док.ДоговорКонтрагента=Договор.Ссылка;
Док.Автор=Справочники.Пользователи.НайтиПоНаименованию(«Elegant», Истина);
Док.ХозОперация=Справочники.ХозОперации.ВводОстатковТоваров;
Док.ВалютаДокумента=Константы.ВалютаРегламентированногоУчетаОрганизаций.Получить();
Док.КурсДокумента=1;
КонецЕсли;
Док.СуммаДокумента=БД.SUMMA;
СтрокаДок=Док.Товары.Добавить();
СтрокаДок.Количество=БД.KOL;
СтрокаДок.Цена=БД.CENA ;
ТМЦ18=БД.kod;
Если Номенклатура.НайтиПоКоду(СокрЛп(ТМЦ18))=Справочники.Номенклатура.ПустаяСсылка()Тогда
ТОВАР = БД.NOM;
ПолнТовар=БД.NOMPL;
Един=БД.ED;
Сообщить(«Добавление номенклатуры» +ТОВАР);
НовыйТовар= Справочники.Номенклатура.СоздатьЭлемент();
// Получить ссылку на группу, в которой будет находиться новый элемент.
Родитель = Справочники.Номенклатура.НайтиПоНаименованию(«Материалы запчасти», Истина);
НовыйТовар.ВалютаУчета=справочники.Валюты.НайтиПоКоду(810);
НовыйТовар.Артикул=БД.KAT+1;
НовыйТовар.ставкандс=справочники.СтавкиНдс.НайтиПоНаименованию(«18%», Истина);
НовыйТовар.ТипНоменклатуры=справочники.ТипыНоменклатуры.НайтиПоНаименованию(«Материалы и спецоснастка»);
НовыйТовар.ВидНоменклатуры=перечисления.ВидыНоменклатуры.Товар;
КонецЕсли;
рекв=СтрЗаменить(«Номенклатура.Артикул», Символы.НПП, «»);
//СтрокаДок.СуммаНДС=БД.NDS;
СтрокаДок.ЕдиницаИзмерения=СтрокаДок.Номенклатура.ОсновнаяЕдиницаИзмерения;
Если СтрокаДок.Номенклатура.ТипНоменклатуры.ИспользованиеХарактеристик=3 Тогда
Источник
Ввод остатков из файла — свертка табличной части
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
| Цитата |
|---|
| При записи обнаружены ошибки : Таблица значения колонок не уникальны ! Строки: 2,3,4,5 Таблица значения колонок не уникальны ! Строки: 6,7 Таблица значения колонок не уникальны ! Строки: 8,9 Таблица значения колонок не уникальны ! Строки: 10,11,12,13,14 Из-за возникших ошибок операция записи была отменена. |
Я так понимаю, что надо сделать свертку табличной части по номенклатуре, при этом вычислить среднюю себестоимость.
Подскажите, пожалуйста, как это сделать в АА? есть ли какие-то штатные средства обойти этот момент?
В загружаемом документе порядка 5000 позиций и почти все из них — имеют записи по нескольку строк
P.S. в коде и на рисунке можгут строки не совпадать — выкинул кое-что для наглядности.
В подменю заполнить добавьте новую кнопку например «Свернуть табличную часть».
Сверните табличную часть следующей строкой:
Товары.Свернуть(«Номенклатура, ЕдиницаИзмерения, Коэффициент, СтавкаНДС, ХарактеристикаНоменклатуры, ГТД, ПроцентНаценки», «Цена, Количество, Сумма, СуммаВсего, СуммаНДС, ЦенаРозничная, СуммаРозничная»);
затем нужно пересчитать розничную цену.
И запустить обработчик
ОбработкаРеквизита(«Товары.Сумма», ТекущаяСтрока, ЭтаФорма);
Виктор Радько,
до свертки:
после свертки:
вопросы:
1)ОбработкаРеквизита(«Товары.Сумма», ТекущаяСтрока, ЭтаФорма); — это нужно для пересчета суммы
а для пересчета розничной цены, нужно знать сколько строк свернулось в текущую строку, чтобы получить «Цена=Цена/Кол.Строк.Свернутых». Как получить сколько строк свернулось в текущую строку? (именно не количество в колонке «количество», а количество свернутых строк по данной позиции)
2) может немножко не в тему: используется это же документ и эта же процедура загрузки из файла — есть проблема автоматической подгрузки «единицы измерения»
— не могу настроить так, чтобы брало из файла или выставляло автоматом. как-то с этим можно бороться? может нужно ранее при загрузке номенклатуры создавать для неё «Единицы измерения»?
3) вопрос по ценам в данном документе(почитал хелп — немонятно) поле «Цена» — это грубо говоря «себестоимость» детали по которой она ложится на склад?
«Цена розничная» — я так понял что это должна быть цена по которой мы продаём в розницу или не так? если это так, то почему не подхватывается текущая розничная цена, установленная документом «Изменение цен компании» если это не реальная розничная цена — то данную колонку можно проигнорировать и использовать только колонку «Цена», для задания себестоимости товара на складе. Проясните, пожалуйста, ситуацию.
1.
ОбработкаРеквизита(«Товары.Сумма», ТекущаяСтрока, ЭтаФорма); нужна для получения цены и процента наценки.
цена розничная = Сумма розничная/количество товара, иначе можем получить большое расхождение между Суммой и ценой умноженной на количество.
2. Единицы нужно заранее загрузить лучше этой же обработкой. Одного наименования в табличной части документа мало, чтоб автоматически создавать не хватающие единицы.
3.
«Цена» — это грубо говоря «себестоимость».
«Цена розничная» — это цена учета на розничном складе, а не цена продажи. Тип розничной цены указывается в поле «Тип цен розничной торговли» у Склада документа, если он розничный. Можно розничную цену не подгружать, а брать из регистра сведений вот нужный вызов события
ОбработкаРеквизита(«УстановитьРозничнуюЦену», ТекущаяСтрока, ЭтаФорма);
Все зависит от того, что надо, оставить старую розничную цену или перебить ее подгружаемой. Чтоб перебить текущую цену у Подразделения должен быть установлен признак «Формировать цену розничной торговли».
Себестоимость хранится в регистре «Партии товаров компании», а розничная сумма в регистре «Остатки товаров компании».
Спасибо!
По ценам.
С ценами вроде понятно: что для чего и как лучше рассчитывать. Только уточню: я правильно понял, что можно только загрузить «Цену» как себестоимость, а «Розничную цену» не загружать совсем — если цены устанавливаются отдельным документом «изменение цен»?
или именно для этого документа нужно подгружать или брать из регистров розничную цену, чтобы правильно потом отображались отчеты?
По «Единицам Измерения».
Не совсем понятно, как это же обработкой загрузить единицы — крутил и так и эдак — не получается. мне для начала надо хотя бы просто всем позициям указать «шт».
Есть ли какой-то пример, как имея Список Номенклатуры(наименование, артикул — уникальный, если нужно — код в БД) — установить для «ввода остатков» единицы измерения «шт»?
Номенклатуру я гружу программно из excel-файла, кусок кода касательно единиц у меня такой:
| Цитата |
|---|
| Александр Тугаенко пишет: я правильно понял, что можно только загрузить «Цену» как себестоимость, а «Розничную цену» не загружать совсем — если цены устанавливаются отдельным документом «изменение цен»? или именно для этого документа нужно подгружать или брать из регистров розничную цену, чтобы правильно потом отображались отчеты? |
Если для розничного склада не будут заданы розничные суммы (цены), то они не попадут в регистр «Остатки товаров компании». Искажаются данные для учета товаров розничного склада в продажных ценах, если не сделать переоценку товара, по ценам регистра сведений «Цены».
Розничные суммы вводятся не обязательно только в документе «Ввод остатков товаров». Они вводятся во всех документах оприходования товара.
Для загрузки единиц обработку «Загрузка данных из табличного документа» нужно запускать из подменю «Обработки» главного меню.
Спасибо за помощь!
Кому интересно, в результате делаю так:
1) загружаю Номенклатуру и и в процессе программно для каждой позиции «Основную единицу измерения» — НовыйЭлемент.ОсновнаяЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(«шт»)
— получается для всех одинаковая и вроде какая-то виртуальная — до конца не понял .
2) Загружаю через обработку «Загрузка из табличного файла» — в справочник «единицы измерения» записи для каждой позиции номенклатуры.
3) программно изменяю у всей номенклатуры ОсновнуюЕдиницуИзмерения на загруженную на предыдущем шаге.
Теперь у всей номенклатуры ОсновнаяЕдиницаИзмерения=шт и для каждой — своя(в справочнике идут записи со связью по владельцу, в лице которого выступает Номенклатура) — т.к. надо будет потом устанавливать вес, то в качестве связи по владельцу использую Номенклатуру, а не ТипНоменклатуры.
4)В док. «Ввод остатков» через обработку «заполнить из файла» подгружаю остатки номенклатуры, при этом достаточно иметь(для меня): Артикул (уникальный у нас), Количество, Наименование ОсновнойЕдиницыИзмерения — шт, Цену(себестоимость). Остальное — выставляется или вычисляется.
5) после выполнения обработки в ТЧ «Ввод остатков» для всех строк прогоняю обработчик
ОбработкаРеквизита(«Товары.Сумма», ТекущаяСтрока, ЭтаФорма);
если этого не сделать — не пропишется себестоимость товара в регистры.
в результате получаю полный список Номенклатуры с остатками, себестоимостью остатков, и для каждой номенклатуры есть своя основная единицы измерения — на которую потом будет подвязываться вес.
P.S. свертку средствами 1С корректно сделать не получилось, а т.к. это надо будет сделать только 1 раз, то выгружаю xls-входные данные в MySQL — там запросом делаю что мне нужно, — выгружаю обратно в xls-файл и уже свернутый и полностью рассчитанный xls-файл гружу в обработку «Загрузка из табличного файла».
Для меня так получилось быстрее, чем докапываться до того как это делается в 1С.
Источник
Таблица значений
В таблицах значений существуют строки и колонки. У каждой строки есть индекс, он начинается с нуля. Таблицу значений можно создавать с различными колонками и добавлять в нее строки. По строкам в таблице можно делать выборку и поиск, устанавливать и получать значения, сортировать, группировать и удалять строки.
Как можно создать новую таблицу значений?
Как добавить новую колонку с определенным типом и заголовком?
- Имя (необязательный, тип Строка , по умолчанию пустая строка). Имя колонки.
- Тип (необязательный, тип ОписаниеТипов ). Объект, описывающий допустимые типы значений для колонки. Если параметр не указан, в колонке можно будет хранить значение любого типа.
- Заголовок (необязательный, тип Строка , по умолчанию пустая строка). Заголовок колонки таблицы значений. Используется при визуальном отображении таблицы значений.
- Ширина (необязательный, тип Число , по умолчанию ноль). Ширина колонки в символах. Используется при визуальном отображении таблицы значений.
Как добавить новые строки?
Как выгрузить результат запроса в таблицу значений?
Как обойти в цикле все строки таблицы значений?
Как сделать выборку строк в таблице значений с отбором?
- ПараметрыОтбора (обязательный, тип Структура ). Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры — искомое значение.
Осуществляет поиск строк таблицы значений, отвечающих заданным условиям поиска. Возвращает массив строк таблицы значений, соответствующих условиям поиска. Метод эффективно использовать для выборки неуникальных значений.
Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице, значение в массиве тоже будет измененным.
Как выполнить сортировку?
Как вычислить итоги по колонке?
Как сделать копию таблицы значений?
Как свернуть таблицу значений по колонке и суммировать по количеству?
Метод Свернуть() сворачивает таблицу по колонке «Наименование» и суммирует колонку «Количество». Если существуют еще колонки, то они будут удалены.
- КолонкиГруппировок (обязательный, тип Строка ). Имена колонок, разделенные запятыми, по которым необходимо группировать строки таблицы значений.
- КолонкиСуммирования (необязательный, тип Строка ). Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках таблицы значений.
Осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
Списки колонок не должны пересекаться. Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений.
- Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число .
- Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число , значения других типов будут игнорироваться.
- Если в колонке несколько типов и среди них есть тип Число , то в процессе суммирования будут принимать участие только значения, имеющие тип Число , значения других типов будут игнорироваться.
- Если в колонке несколько типов и среди них нет типа Число , то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке.
Как найти строку в таблице значений по значению?
- Значение (обязательный, тип Произвольный ). Искомое значение.
- Колонки (необязательный, тип Строка , по умолчанию пустая строка). Список имен колонок, разделенных запятыми, по которым производится поиск. Если параметр не указан, поиск осуществляется по всей таблице значений.
Осуществляет поиск значения в указанных колонках таблицы значений. Возвращает строку таблицы значений, в которой содержится искомое значение. Если значение не найдено, то возвращается значение Неопределено . Метод эффективно использовать для поиска уникальных значений.
Источник
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
&НаСервере Процедура ВыполнитьКодНаСервере() /// Как создать таблицу значений в 1с 8.3, 8.2 // с таблицей значений можно работать только на сервере Таб = Новый ТаблицаЗначений; /// Как добавить колонки в таблицу значений в 1с 8.3, 8.2 Таб.Колонки.Добавить("Фрукт"); Таб.Колонки.Добавить("Цвет"); Таб.Колонки.Добавить("Вкус"); /// Как добавить строки в таблицу значений в 1с 8.3, 8.2 Стр = Таб.Добавить(); Стр.Фрукт = "Яблоко"; Стр.Цвет = "Зелёный"; Стр.Вкус = "Кислый"; Стр = Таб.Добавить(); Стр.Фрукт = "Банан"; Стр.Цвет = "Желтый"; Стр.Вкус = "Сладкий"; Стр = Таб.Добавить(); Стр.Фрукт = "Слива"; Стр.Цвет = "Синий"; Стр.Вкус = "Терпкий"; /// Как добавить в таблицу значений колонку с /// описанием типа и заголовка в 1с 8.3, 8.2 ОписаниеВеса = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 3)); Таб.Колонки.Добавить("ВесФрукта", ОписаниеВеса, "Вес фрукта"); Таб[0].ВесФрукта = 100.005; Таб[1].ВесФрукта = 60.010; Таб[2].ВесФрукта = 25.000; /// Как перечислить все строки в таблице значений в 1с 8.3, 8.2 Для Каждого Стр Из Таб Цикл Сообщить(Стр.Фрукт + " " + Стр.Цвет + " " + Стр.Вкус + " " + Стр.ВесФрукта); КонецЦикла; /// Как перечислить все колонки в таблице значений /// в 1с 8.3, 8.2 Для Каждого Колонка Из Таб.Колонки Цикл Сообщить(Колонка.Имя); КонецЦикла; /// Как выгрузить колонку таблицы значений в массив в 1с 8.3, 8.2 // выгрузка названий фруктов в массив МассивФруктов = Таб.ВыгрузитьКолонку("Фрукт"); // ничего не измениться, так как массив не менялся Таб.ЗагрузитьКолонку(МассивФруктов, "Фрукт"); /// Как заполнить значения в колонке для всех строк таблицы /// значений в 1с 8.3, 8.2 // обнулим вес во всех строках Таб.ЗаполнитьЗначения(0, "ВесФрукта"); // выставим новые веса Таб[0].ВесФрукта = 100; Таб[1].ВесФрукта = 60; Таб[2].ВесФрукта = 25; /// Как в таблице значений посчитать итог по колонке в 1с 8.3, 8.2 Сообщить(Таб.Итог("ВесФрукта")); // 185 /// Как найти строку в таблице значений по значению в 1с 8.3, 8.2 // найдём строчку с яблоком и покажем его цвет НайденнаяСтрока = Таб.Найти( "Яблоко" ); Если НайденнаяСтрока <> Неопределено Тогда Сообщить(НайденнаяСтрока.Цвет); // Зелёный КонецЕсли; /// Как найти строку в таблице значений поиском значения /// в определенных колонках в 1с 8.3, 8.2 // будем искать по слову "Кислый" в колонках вкус и цвет НайденнаяСтрока = Таб.Найти("Кислый", "Вкус, Цвет"); Если НайденнаяСтрока <> Неопределено Тогда Сообщить(НайденнаяСтрока.Фрукт); // Яблоко КонецЕсли; // добавим ещё один зелёный фрукт Стр = Таб.Добавить(); Стр.Фрукт = "Киви"; Стр.Цвет = "Зелёный"; Стр.Вкус = "Сладкий"; Стр.ВесФрукта = 30; /// Как искать в таблице значений неуникальные значения /// в 1с 8.3, 8.2 Отбор = Новый Структура; Отбор.Вставить("Цвет", "Зелёный"); Строки = Таб.НайтиСтроки(Отбор); Для Каждого Стр Из Строки Цикл Сообщить(Стр.Фрукт); // Яблоко Киви КонецЦикла; /// Как сдвинуть строку таблицы значений в 1с 8.3, 8.2 // сдвигаем первую строку на одну позицию вперёд Таб.Сдвинуть(0, 1); // и возвращаем обратно Таб.Сдвинуть(1, -1); /// Как создать копию таблицы значений в 1с 8.3, 8.2 // полная копия КопияТаб = Таб.Скопировать(); /// Как создать копию таблицы значений по нужным колонкам /// в 1с 8.3, 8.2 // только две колонки будет Фрукт и Цвет КопияТаб = Таб.СкопироватьКолонки("Фрукт, Цвет"); /// Как создать копию таблицы значений по отбору в 1с 8.3, 8.2 Отбор = Новый Структура; Отбор.Вставить("Фрукт", "Яблоко"); // таблица будет содержать только строчку с яблоком КопияТаб = Таб.Скопировать(Отбор); // таблица будет содержать цвет и вес яблока КопияТаб = Таб.Скопировать(Отбор, "Цвет, ВесФрукта"); /// Как свернуть таблицу значений по колонке в 1с 8.3, 8.2 // свернём по вкусу, просуммируем по весу Таб.Свернуть("Вкус", "ВесФрукта"); /// Как отсортировать таблицу значений по колонке в 1с 8.3, 8.2 Таб.Сортировать("ВесФрукта Возр"); /// Как отсортировать таблицу значений по нескольким колонкам /// в 1с 8.3, 8.2 Таб.Сортировать("ВесФрукта Возр, Вкус Убыв"); /// Как удалить строку из таблицы значений в 1с 8.3, 8.2 // по индексу или по значению Таб.Удалить(0); КонецПроцедуры /// Как программно вывести таблицу значений на /// форму в 1с 8.3, 8.2 // см. примеры использования этой функции ниже // ТабВКоде - таблица значений, созданная программно // ТабРеквизит - имя реквизита формы типа ТаблицаЗначений // ТабНаФорме - имя элемента формы, связанного с ТабРеквизит &НаСервере Процедура ВывестиТаблицуЗначенияВКодеВТаблицуНаФорме(ТабВКоде, ТабРеквизит, ТабНаФорме) // реквизит ТабРеквизит и соответствующий // ему элемент формы ТабНаФорме уже созданы // нами в визуальном режиме // 1. добавляем колонки из ТабВкоде в реквизит ТабРеквизит НовыеРеквизиты = Новый Массив; Для Каждого Колонка Из ТабВКоде.Колонки Цикл НовыеРеквизиты.Добавить( Новый РеквизитФормы( Колонка.Имя, Колонка.ТипЗначения, ТабРеквизит ) ); КонецЦикла; ИзменитьРеквизиты(НовыеРеквизиты); // 2. добавляем колонки из ТабВКоде в элемент ТабНаФорме Для Каждого Колонка Из ТабВКоде.Колонки Цикл НовыйЭлемент = Элементы.Добавить( ТабРеквизит + "_" + Колонка.Имя, Тип("ПолеФормы"), Элементы[ТабНаФорме] ); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = ТабРеквизит + "." + Колонка.Имя; КонецЦикла; // 3. наконец, передаём данные из ТабВКоде в ТабРеквизит ЗначениеВРеквизитФормы(ТабВКоде, ТабРеквизит); // готово! КонецПроцедуры &НаСервере Процедура СоздатьТаблицуНаФормеНаСервере() // программно создаём таблицу значений ТабВКоде ТабВКоде = Новый ТаблицаЗначений; ОписаниеСтроки = Новый ОписаниеТипов("Строка"); ОписаниеВеса = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 3)); ТабВКоде.Колонки.Добавить("Фрукт", ОписаниеСтроки, "Имя фрукта"); ТабВКоде.Колонки.Добавить("Цвет", ОписаниеСтроки, "Цвет фрукта"); ТабВКоде.Колонки.Добавить("Вес", ОписаниеВеса, "Вес фрукта"); Стр = ТабВКоде.Добавить(); Стр.Фрукт = "Яблоко"; Стр.Цвет = "Зелёный"; Стр.Вес = 200; Стр = ТабВКоде.Добавить(); Стр.Фрукт = "Банан"; Стр.Цвет = "Желтый"; Стр.Вес = 150; ВывестиТаблицуЗначенияВКодеВТаблицуНаФорме(ТабВКоде, "ТабРеквизит1", "ТабНаФорме1"); КонецПроцедуры /// Как программно вывести на форму результат запроса /// в виде таблицы значений в 1с 8.3, 8.2 &НаСервере Процедура ВывестиНаФормуРезультатЗапросаНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Товары.Ссылка, | Товары.ВерсияДанных, | Товары.ПометкаУдаления, | Товары.Код, | Товары.Наименование, | Товары.Цвет, | Товары.ЕдиницаИзмерений, | Товары.Предопределенный, | Товары.ИмяПредопределенныхДанных |ИЗ | Справочник.Товары КАК Товары"; РезультатЗапроса = Запрос.Выполнить(); ТабВКоде = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой); // функция ВывестиТаблицуЗначенияВКодеВТаблицуНаФорме определена выше ВывестиТаблицуЗначенияВКодеВТаблицуНаФорме(ТабВКоде, "ТабРеквизит2", "ТабНаФорме2"); КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере