Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 07:56

Вставить данные в таблицу

Автор Дмитрий1991, 09 дек 2014, 08:50

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

Дмитрий1991

здраствуйте у меня такой вопрос есть данные типа строка,они считываются сканером в поле штрихкод как втавить данные в поле таблици в столбец обьек и как вобще работать с таблицей в 1с в делфи понятно стрингрид[0,1]:=x;
обьясните кому не жалко, надо срочно.рисунок прилагается

KrivosheevEV

Источникомданныхтабличнойчастинаформедокументаявляетсятаблицазначенийеёзнченияинужноменять.

KKurgan

Во первых, обратите внимание, что в данном случае вы работаете не с таблицей а с коллекциями. Если нужно обратиться к полю табличной части объекта:
Объект.ЛицевыеСчета[индекс].Объект = ...
Но в вашем случае, если я правильно понял, что требуется, нужно присвоить значение полю в текущей строке табличной части:
Элементы.ЛицевыеСчета.ТекущиеДанные.Объект = ...

Дмитрий1991

Вот вроде весь код мне нужно чтобы строка  ИскомаяСтрока    -( это личный счёт, он выделяется из qr кода) вставлялась в строку таблици в столбец обьекта я немогу понять где мне подставить его чтоб он его вставил

// Обработчик события "ПриИзменении" поля "ТекущийШтрихКод".

Процедура ТекущийШтрихКодПриИзменении(Элемент)

Если Не ПустаяСтрока(ТекущийШтрихКод) Тогда
если найти(ТекущийШтрихКод,"persAcc=╨╗/╤Б тДЦ") тогда
с=найти(ТекущийШтрихКод,"persAcc=╨╗/╤Б тДЦ");
СтрокаПоиска = Сред(ТекущийШтрихКод, с+17);
с = Найти(СтрокаПоиска, "|");

ИскомаяСтрока ="л/с №"+Лев(СтрокаПоиска, с-1);

конецесли;
ОбработатьШтрихКод(ТекущийШтрихКод);
ТекущийШтрихКод = "";
ТекущийЭлемент =Элемент;
КонецЕсли;

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

// Процедура обрабатывает штрих-код, который был прочитан при помощи сканера
// штрих-кодов или который был загружен из терминала сбора данных
//// Параметры
//  Данные        – <Строка>
//                - строка, содержащая штрих-код
//
Процедура ОбработатьШтрихКод(Знач Данные)

Парам = Новый Структура("КодЛС, Сумма, МесяцНачисления");
мНастройкиУчетнойПолитикиТСЖ = ПолучитьНастройкиУчетнойПолитикиЖКХ();
Если Не КВП_ПрочиеПроцедурыИФункции.ОбработатьИРазобратьШтрихКод(Данные, мНастройкиУчетнойПолитикиТСЖ, Парам) Тогда
УПЖКХ_ТиповыеМетодыКлиентСервер.СообщитьОбОшибке("Неизвестный формат штрих-кода.");
возврат;
КонецЕсли;
Парам.Вставить("Объект",Парам.КодЛС);
Если ЗначениеЗаполнено(Парам.МесяцНачисления)     И мНастройкиУчетнойПолитикиТСЖ.РегистрацияОплатыПоШКНаУказанныйМесяц Тогда
НастройкиПлатежа = Новый ТаблицаЗначений;
НастройкиПлатежа.Колонки.Добавить("Услуга");
НастройкиПлатежа.Колонки.Добавить("МесяцНачисления");
НастройкиПлатежа.Добавить().МесяцНачисления = Парам.МесяцНачисления;
Иначе   НастройкиПлатежа = Неопределено;
КонецЕсли;      
         ДобавитьСтрокуОплатыПоОбъектуНаСервере(Парам, НастройкиПлатежа);
ЗаполнитьДопДанныеВТаблице();
КонецПроцедуры;

// Добавляет строку оплаты по объекту.

Процедура ДобавитьСтрокуОплатыПоОбъектуНаСервере(Парам, НастройкиПлатежа)
ДокументОбъект = РеквизитФормыВЗначение("Объект", Тип("ДокументОбъект.КВП_РегистрацияОплаты"));
ДокументОбъект.ДобавитьСтрокуОплатыПоОбъекту(Парам, НастройкиПлатежа);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
КонецПроцедуры;

// Процедура заполнения дополнительных данных
// в строках дерева.

Процедура ЗаполнитьДопДанныеВТаблице()   СписокЛС = Объект.ЛицевыеСчета.Выгрузить().ВыгрузитьКолонку("Объект");
мТаблицаДанныхЛС = ПолучитьПараметрыЛицевыхСчетовДляВыводаВТаблицах(СписокЛС, Объект.Дата);
Для Каждого ТекСтрока Из мТаблицаДанныхЛС Цикл   СтрокиТаблицы = Объект.ЛицевыеСчета.НайтиСтроки(Новый Структура("Объект", ТекСтрока.ЛицевойСчет));
Для Каждого ТекСтрокаТаблицы Из СтрокиТаблицы Цикл   ТекСтрокаТаблицы.Помещение = ТекСтрока.Помещение;
ТекСтрокаТаблицы.Владелец  = ТекСтрока.Владелец;
КонецЦикла;
КонецЦикла;
Для Каждого ТекСтрокаДанных Из Объект.ЛицевыеСчета Цикл   ТекСтрокаДанных.ФлагРедактированияНастроек = ?(ТекСтрокаДанных.ВариантРаспределения = "", 1, 0);
ТекСтрокаДанных.ПробитыйЧек = ?(ТекСтрокаДанных.НомерЧекаККМ = 0, 1, 0);
КонецЦикла;
КонецПроцедуры;

// Формирует таблицу параметров лицевых счетов для облегчения вывода в
// табличных полях.
//
// Параметры:
//  СписокЛицевыхСчетов - Массив или Список значений - список лицевых
//                 счетов, по которым необходимы данные
//  Период       - Дата - дата получения данных
//  ЗапросПараметровЛС - Запрос - переменная для хранения запроса - для
//                 избежания множественной инициализации
/// Возвращаемое значение:
//  Таблица значений с колонками: "ЛицевойСчет", "Помещение" и "Владелец",
//  проиндексированная по колонке "ЛицевойСчет".
//
Функция ПолучитьПараметрыЛицевыхСчетовДляВыводаВТаблицах(СписокЛицевыхСчетов,   Период,    ЗапросПараметровЛС = Неопределено) Экспорт
Если ЗапросПараметровЛС = Неопределено Тогда   ЗапросПараметровЛС = Новый Запрос();   ЗапросПараметровЛС.Текст =
"ВЫБРАТЬ   |   ДанныеЛС.ЛицевойСчет,   |   ДанныеЛС.Здание КАК Здание,   |   ДанныеЛС.Помещение КАК Помещение,   |   УПЖКХ_ОтветственныйСобственникНанимательЛицевогоСчетаСрезПоследних.ОтветственныйВладелец КАК Владелец,   |   ДанныеЛС.Помещение.Представление КАК ПомещениеПредставление,   |   УПЖКХ_ОтветственныйСобственникНанимательЛицевогоСчетаСрезПоследних.ОтветственныйВладелец.Представление    |   КАК ВладелецПредставление   |ИЗ   |   (ВЫБРАТЬ   |   КВП_ЛицевыеСчета.Ссылка КАК ЛицевойСчет,   |   КВП_ЛицевыеСчета.Адрес КАК Помещение,   |   КВП_ЛицевыеСчета.Адрес.Владелец КАК Здание   |   ИЗ   |   Справочник.КВП_ЛицевыеСчета КАК КВП_ЛицевыеСчета   |   ГДЕ   |   КВП_ЛицевыеСчета.Ссылка В(&СписокЛС)) КАК ДанныеЛС   |   ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УПЖКХ_ОтветственныйСобственникНанимательЛицевогоСчета.СрезПоследних(&Дата,    |   ЛицевойСчет В (&СписокЛС))    |   КАК УПЖКХ_ОтветственныйСобственникНанимательЛицевогоСчетаСрезПоследних   |   ПО ДанныеЛС.ЛицевойСчет = УПЖКХ_ОтветственныйСобственникНанимательЛицевогоСчетаСрезПоследних.ЛицевойСчет";
КонецЕсли;

ЗапросПараметровЛС.УстановитьПараметр("СписокЛС", СписокЛицевыхСчетов);   ЗапросПараметровЛС.УстановитьПараметр("Дата",     Период);   ТаблицаДанныхЛС = ЗапросПараметровЛС.Выполнить().Выгрузить(); ТаблицаДанныхЛС.Индексы.Добавить("ЛицевойСчет");
Возврат ТаблицаДанныхЛС;
КонецФункции

// ПолучитьПараметрыЛицевыхСчетовДляВыводаВТаблицах()

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск