Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 06:34
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Перебор данных в макете  (Прочитано 3972 раз)

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

Оффлайн Andrey_123

  • **
  • Сообщений: 76
  • РЕПУТАЦИЯ: 3
  • КПД: 4%
  • Регистрация: 2014-02-24
  • Сайт: 
  • Профессия: Программист 1С
Здравствуйте. Начну банально. Прошу не пинать начинающего программиста 1С. Вопрос следующий: Конфигурация ЗУП, есть общий макет ОКПДТР_Должности, который содержит код и наименование должности. Необходимо реализовать перебор данных макета для записи их в справочник.

Последний раз редактировалось: Andrey_123; 24 Фев 2014, 10:43


Оффлайн lguandrey

  • *
  • Сообщений: 11
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-02-13
  • Сайт: 
  • Профессия: Программист 1С
Функция СформироватьИзМакетаТаблицуЗначений(Макет) Экспорт
Перем ТЗ;
ТЗ=Новый ТаблицаЗначений();

#Если Клиент Тогда
//Считываем столбцы
Для Стр=1 По Макет.ВысотаТаблицы Цикл
Если Стр>1 Тогда
ТекСтр=ТЗ.Добавить();
КонецЕсли;
ПустаяСтрока=истина;

Для НомерСтолбца=1 По Макет.ШиринаТаблицы Цикл
Яч=Макет.Область(Стр, НомерСтолбца);
Если Яч.СодержитЗначение Тогда
Зн=Яч.Значение;
Иначе
Зн=Яч.Текст;
КонецЕсли;
Если ТипЗнч(Зн)=Тип("Строка") И ПустаяСтрока(Зн) Тогда
Зн=Неопределено;
КонецЕсли;

//Добавляем столбец
Если Стр=1 Тогда
ТЗ.Колонки.Добавить(Зн,Новый ОписаниеТипов("Строка"));
Иначе
ТекСтр[НомерСтолбца-1]=Зн;
КонецЕсли;

КонецЦикла;
КонецЦикла;
#КонецЕсли
Возврат ТЗ;
КонецФункции

Оффлайн Andrey_123

  • **
  • Сообщений: 76
  • РЕПУТАЦИЯ: 3
  • КПД: 4%
  • Регистрация: 2014-02-24
  • Сайт: 
  • Профессия: Программист 1С
lguandrey, если не затруднит прокомментируйте пожалуйста подробно ваш ответ

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Может, удобнее читать данные из ТЗ, на основании которой выводится макет?

Оффлайн AndreyKa

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-09-09
  • Сайт: 
  • Профессия: Программист 1С
lguandrey, если не затруднит прокомментируйте пожалуйста подробно ваш ответ
там просто выдернута откуда-то функция для примера, с мусором, да и неработающая в таком виде.
Вот рабочая функция с комментариями:
// Функция загружает данные из переданного макета в ТаблицуЗначений
//
Функция СформироватьИзМакетаТаблицуЗначений(Макет) Экспорт
// объявление переменных:
Перем ТЗ;
// инициализация переменных:
ТЗ=Новый ТаблицаЗначений();
//
#Если Клиент Тогда
//считываем столбцы макета
Для Стр=1 По Макет.ВысотаТаблицы Цикл
//НУМЕРАЦИЯ СТРОК:
// - с 1
//
// добавим новую строку в ТЗ:
ТекСтр=ТЗ.Добавить();
//
// считываем данные новой строки макета:
ПредыдущееЗн = "";
Для НомерСтолбца=1 По Макет.ШиринаТаблицы Цикл
//НУМЕРАЦИЯ СТОЛБЦОВ ТЗ:
// - с 0
//НУМЕРАЦИЯ СТОЛБЦОВ МАКЕТА:
// - с 1
//т.е. Макет.Столбец[1]=ТЗ.Столбец[0]
//
Яч=Макет.Область(Стр, НомерСтолбца);
// получим данные из текущей ячейки макета:
Если Яч.СодержитЗначение Тогда
//если ячейка области содержит значение:
Зн=Яч.Значение;
Иначе
Зн=Яч.Текст;
КонецЕсли; //Если Яч.СодержитЗначение Тогда ...
//
ТекЗн = Зн;
Если (ТипЗнч(Зн)=Тип("Строка") И ПустаяСтрока(Зн))
  ИЛИ (НЕ ПустаяСтрока(Зн) И Зн=ПредыдущееЗн) Тогда
//ПРИМЕЧАНИЕ: пустое значение ячейки ТЗ, если:
// - пустое значение в ячейке макета
// - текущее значение ячейки макета - копия предыдущего (важны только уникальные данные по строке, а не повторы!)
Зн="";
КонецЕсли; //Если (ТипЗнч(Зн)=Тип("Строка") И ПустаяСтрока(Зн)) ИЛИ ... Тогда ...
//
ПредыдущееЗн = ТекЗн;
//
//добавляем следующий столбец:
Если Стр=1 Тогда
ТЗ.Колонки.Добавить(, Новый ОписаниеТипов("Строка")); //имя колонки не указываем
КонецЕсли;
// заполняем ТЗ:
ТекСтр[НомерСтолбца-1]=Зн;
//
КонецЦикла; //Для НомерСтолбца=1 По Макет.ШиринаТаблицы Цикл ...
//
КонецЦикла; //Для Стр=1 По Макет.ВысотаТаблицы Цикл ...
#КонецЕсли
//
Возврат ТЗ;
//
КонецФункции //СформироватьИзМакетаТаблицуЗначений()


Теги:
 

Перенос данных из 1с 82 БП (базовая) в 1с 82 БГУ (базовая)

Автор Владимир87Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7434
Последний ответ 06 Дек 2014, 17:40
от дфтын
Поиск по бае данных,(полнотекстовый поиск)

Автор kot_ooРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3882
Последний ответ 19 Май 2014, 15:40
от kot_oo
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2113
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Задваивание" данных в отчете

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 7329
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
Куда сохраняются данные в режиме работы клиент при выгрузке данных обработкой "Универсальный обмен данными в формате XML"

Автор xDDРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 6952
Последний ответ 13 Ноя 2014, 08:23
от cska-fanat-kz

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 248
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal