- Как выгрузить табличное поле в таблицу значений?
- Выгрузка в Excel из Таблицы
- Совет: Как выгрузить таблицу, справочник или документ из 1С 8.3 в Excel?
- Дополнительная вычисляемая колонка в табличной части
- Дополнительная вычисляемая колонка в табличной части
- Реализация на платформе 1С: Предприятие 8.1 (или в обычном приложении)
- Реализация на платформе 1С: Предприятие 8.2 (8.3 управляемое приложение)
- Как добавить реквизит объекта в таблицу формы
- 5 способов загрузки из Excel в 1С
- Работа с Excel через OLE на сервере
- Работа с Excel используя внешний источник данных
- Работа с Excel через OLE на клиенте
- Загрузка в табличный документ
- Работа с Excel через построитель
- Скачать файлы
- Специальные предложения
- См. также
- Загрузка документов «Реализация товаров и услуг» и «Отчет производства за смену» из Excel (*.xls, *.xlsx) во Фреш (Fresh — модель сервиса или облако) Промо
- Парсинг Excel-файла
- Заготовка обработки (внешняя печатная форма) заполнения Excel документа из 1С
- Загрузка данных о продажах WildBerries из API Статистики и Отчетов в формате *.xlsx в документ «Отчет комиссионера»
- Загрузка прайс-листов в БП 3.0, УНФ 1.6, Розница 2.3, УТ 11.4, КА 2 и ERP Промо
- Загрузка из Excel (без использования com-объектов, без установленного Excel)
- Конфигурация «Обмен данными Excel»
Как выгрузить табличное поле в таблицу значений?
Суть:
Есть документ с табличным полем в форме документа.
Необходимо выгрузить табличное поле в таблицу значений для дальнейшей обработки.
Табличное поле связано с табличной частью документа, но состав его строк отличается от состава строк табличной части документа в связи с:
1. Наличием вычисляемых полей
2. Установленным отбором
Колонки выгрузить могу через ТаблПоле.Колонки и обойти циклом «Для каждого». А как выгрузить строки.
Табличную часть документа тоже выгрузить могу. Но она, как написал, отличается от табличного поля составом строк и колонок.
(6) Если не проверял, то могу рассказать:
1. про метод «ОформлениеСтроки уже написал выше.
2. «ОформлениЕСтроки» появляется в событии «ПриВыводеСтроки», но там оформление только одной строки
3. В событии «ПриПолученииДанных» появляется «ОформлениЯСтроки» (коллекция элементов «ОформлениЕСтроки»), но эта коллекция содержит только те элементы, которые в данный момент выведены на экран.
Но все равно спасибо за ответ.
(8) Почитай про ПроверитьСтроку() и МЕТОД ОформлениеСтроки(), который не имеет общего с созвучными параметрами процедур ПриВыводеСтроки/ПриПолученииДанных.
В (6) реальный алгоритм: Перебирается не поле, а ТЧ. Проверяется соответствие строки отбору и если да — запрашивается её(этой строки) — ОформлениеСтроки().
ЗЫ. Имхо, перебирать всю ТЧ может оказаться накладнее, чем метод (3).
Спасибо всем за ответы.
П.С.:
Я решил следующим образом:
1. В табличную часть документа добавил как реквизиты все свои расчетные поля). По здравому размышлению это оказалось даже полезным, один из моментов: так как расчетные поля идут также в печатную форму, и документ, сохраненный в базе всегда соответствует тому, который распечатан. А пересчет данных по документу организовал в виде отдельной кнопки, т.о. автоматом 1С не пересчитывает.
2. Когда необходимо обработать те строки, которые в данный момент выведены на экран, с учетом установленных отборов, то считываю данные из табличной части документа методом «НайтиСтроки», в который передаю структуру с параметрами установленного отбора.
2.1. Для формирования структуры отбора, которая передается в НайтиСтроки написал свою функцию обхода ЭлементовОтбора.
Все.
Решение меня на данном этапе устраивает, так что интерес касательно других методов обхода строк табличного поля формы на данный момент только спортивный.
Будет свободное время — перечитаю последние ответы, попробую.
Источник
Выгрузка в Excel из Таблицы
Добрый день, хотелось бы узнать где не так делаю. Прописал чтобы у меня выводилась таблица с номенклатурой, теперь не могу понять как ее выгрузить.
//Заполнение Таблицы Значений
&НаКлиенте
Процедура ЗаполнениеФормы(Команда)
ЗаполнениеФормыНаСервере ();
КонецПроцедуры
&НаСервере
Процедура ЗаполнениеФормыНаСервере()
//Задаем запрос
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИ,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.ВидНоменклатуры КАК ВидН,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.Код КАК Код,
| ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Упаковка.Ссылка ЕСТЬ NULL
| ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
| ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Упаковка.Числитель / ЦеныНоменклатурыСрезПоследних.Упаковка.Знаменатель
| КОНЕЦ КАК Цена,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.ВидНоменклатуры.ЭтоГруппа КАК ГруппаН,
| ТоварыНаСкладах.Номенклатура.Ссылка КАК Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС.Ссылка КАК СтавкаНДС,
| ЦеныНоменклатурыСрезПоследних.Номенклатура.ТипНоменклатуры.Ссылка КАК ТипН
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
| ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
| ПО ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка = ТоварыНаСкладах.Номенклатура.Ссылка
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.Регистратор.Дата МЕЖДУ &ДатаСКакого И &ДатаПоКакое
| И ТоварыНаСкладах.Склад.Ссылка = &Склад»;
//Установка параметров для задаемого нами запроса
Запрос.УстановитьПараметр(«Склад», Склад);
Запрос.УстановитьПараметр(«ДатаСКакого», ДатаСКакого);
Запрос.УстановитьПараметр(«ДатаПоКакое», ДатаПоКакое);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
//Программно создаем таблицу
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить(«Номенклатура»);
ТЗ.Колонки.Добавить(«ЕдиницаИзмерения»);
ТЗ.Колонки.Добавить(«ВидНоменклатуры»);
ТЗ.Колонки.Добавить(«Код»);
ТЗ.Колонки.Добавить(«Цена»);
ТЗ.Колонки.Добавить(«СтавкаНДС»);
ТЗ.Колонки.Добавить(«ТипНоменклатуры»);
//Задаем таблице значения по запросу
Пока Выборка.Следующий() Цикл
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.ЕдиницаИзмерения = Выборка.ЕдиницаИ;
НоваяСтрока.Номенклатура = Выборка.Номенклатура;
НоваяСтрока.ВидНоменклатуры = Выборка.ВидН;
НоваяСтрока.Код = Выборка.Код;
НоваяСтрока.Цена = Выборка.Цена;
НоваяСтрока.СтавкаНДС = Выборка.СтавкаНДС;
НоваяСтрока.ТипНоменклатуры = Выборка.ТипН;
КонецЦикла;
Попытка Эксель = Новый COMОбъект («Excel.Application»);
Исключение Сообщить (ОписаниеОшибки());
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Add();
Лист = Книга.WorkSheets (1);
Для Каждого Стр из ТЗ Цикл
Лист.Cells (i,1).Value = Стр.Номенклатура;
Лист.Cells (i,2).Value = Стр.Код;
Лист.Cells (i,4).Value = Стр.ВидНоменклатуры;
Лист.Cells (i,7).Value = Стр.ЕдиницаИзмерения;
Лист.Cells (i,16).Value = Стр.ТипНоменклатуры;
Лист.Cells (i,17).Value = Стр.Цена;
Лист.Cells (i,18).Value = Стр.СтавкаНДС;
КонецЦикла;
Источник
Совет: Как выгрузить таблицу, справочник или документ из 1С 8.3 в Excel?
У большинства пользователей 1С может возникнуть необходимость перенести информацию из базы 1С в таблицы Microsoft Excel. Например, выгрузить список номенклатуры из программы 1С:Управление торговлей 8, или список сотрудников из 1С:Зарплата и управление персоналом 8. Такой список удобно редактировать, распечатать или переслать по электронной почте. Все программы на платформе 1С:Предприятие 8.3 имеют одинаковый алгоритм выгрузки информации в таблицу Excel, который укладывается в несколько простых действий.
Программы 1С:Предприятие 8.3 – это, в том числе, конфигурации 1С:Бухгалтерия 3.0, 1С:ЗУП 3.1, 1С:Управление торговлей 11.4, и другие. Это разные программы для различных учетных целей, но с одинаковым интерфейсом и одной логикой разработки.
Для примера мы выгрузим в Excel справочник сотрудников из программы 1С:ЗУП 8 редакции 3.1. Используя тот же алгоритм можно выгрузить из программы любую информацию, которая сгруппирована в таблицы – табличные части документов, списков, справочников.
Справа над над табличной частью окна расположена кнопка Еще, при нажатии на которое появится меню. Команда, которая формирует из списка таблицу привычного формата – Вывести список.
После нажатия на команду Вывести список. программа попросит выбрать колонки, которые попадут в итоговую таблицу. Вы можете снять галочки с тех колонок, которые будут не нужны в итоговой таблице – таблица будет сформирована без нее и значений ее полей. На скриншоте видно, что мы не стали убирать колонки. Когда закончите, нажмите ОК.
В результате откроется новое окно, в котором из выбранной информации будет сформирована таблица. Благодаря аналогичному форматированию из таблицы 1С можно копировать части прямо в табличный процессор MS Excel, либо сохранить эту таблицу как отдельный файл. Для этого нажмите на 3 точки в правом верхнем углу таблицы, затем Файл, команда Сохранить как.
После нажатия на кнопку появится стандартное окно проводника Windows, где нужно будет указать путь размещения файла и его тип. При этом не забудьте выбрать нужный формат сохраняемой таблицы: *.xlsx, чтобы сохранить для современных версий Excel, или *.xls, чтобы файл можно было открыть в старых версиях Excel 2003 года или более ранних. Также на выбор доступны и другие форматы таблиц.
После сохранения файл с таблицей появится в указанной директории и его можно открыть в программе Excel, переслать по почте или распечатать.
Пройдите курсы 1С и Вам больше не понадобятся советы и руководства!
Источник
Дополнительная вычисляемая колонка в табличной части
Дополнительная вычисляемая колонка в табличной части
Реализация на платформе 1С: Предприятие 8.1 (или в обычном приложении)
В начале коротко о том, как добавить дополнительную колонку в табличное поле на платформе 1С 8.1.
Предположим, что у нас есть некий документ с табличной частью “Товары” (с колонками “Номенклатура” и “Количество”) и нам нужно вывести дополнительную колонку “Цена”, которая бы содержала данные реквизита “Цена” элементов справочника “Номенклатура”, выбранных в строках табличной части.
Для этого нам достаточно добавить в форме документа новую колонку “Цена” в табличное поле, содержащее данные табличной части документа и написать следующий код в обработчике события “ПриПолученииДанных” этого табличного поля:
Хочу обратить внимание на то, что строки табличного поля обрабатываются порциями, по мере прокрутки списка.
Реализация на платформе 1С: Предприятие 8.2 (8.3 управляемое приложение)
На платформе 8.2 с использованием управляемых форм решение данной задачи потребует бóльших усилий. Это связано с тем, что за счет своей клиент-серверной ориентированности в платформе 8.2 в управляемом режиме отсутствуют некоторые привычные возможности – например, у табличного поля отсутствуют обработчики событий “ПриПолученииДанных” и “ПриВыводеСтроки”, которые мы могли бы использовать для этих целей в 1С 8.1 или 8.2 в обычных формах.
Пусть в нашей конфигурации есть документ “ВводОстатковДолга” с табличной частью “Контрагенты” (с колонками “Контрагент” и “Сумма”). В свою очередь у справочника “Контрагенты” есть реквизит “ИНН”, значение которого необходимо выводить в строках табличного поля.
[qu_spoiler title=»Примечание от ‘Капитально:» open=»yes» icon=»chevron-circle»]в статье взят неудачный пример т.к. реквизиты вынести можно получить гораздо проще, но тем не менее статья полезна для рассмотрения в учебных целях[/qu_spoiler]
Откроем управляемую форму документа, добавим новую колонку “ИНН” реквизита “Контрагенты” и перенесём её на закладку “Элементы” (для отображения в форме).
Откроем палитру свойств поля “КонтрагентыКонтрагент” и добавим обработчик события “ПриИзменении”
// обработчик события «ПриИзменении» поля «Контрагент» в табличном поле «Контрагенты»
&НаКлиенте
Процедура КонтрагентыКонтрагентПриИзменении ( Элемент )
ТекДанные = Элементы . Контрагенты . ТекущиеДанные ;
ТекДанные . ИНН = ЗначениеРеквизита ( ТекДанные . Контрагент , «ИНН» ) ;
КонецПроцедуры
Это обеспечит нам изменение значения поля “ИНН” при выборе контрагента в строке табличного поля.
Теперь необходимо предусмотреть заполнение колонки “ИНН” при открытии формы документа, а так же после записи и при чтении на сервере.
Обновление данных после записи и при чтении на сервере необходимо в связи с тем, что иначе значения колонки “ИНН” будут очищаться каждый раз при возникновении этих событий. Для заполнения колонки “ИНН” опишем в модуле формы служебную серверную процедуру:
Затем добавим в модуль формы документа обработчики событий “ПриОткрытии”, “ПриЧтенииНаСервере” и “ПослеЗаписиНаСервере”, в каждой из которых будем вызвать описанную ранее служебную процедуру “ОбновитьДанныеКолонкиИНН”
Всё готово. Можно посмотреть на результат.
Статья найдена на просторах интернета
Как добавить реквизит объекта в таблицу формы
Избегай конкретных обещаний. Текст должен быть чарующе неопределенным.
— Первый закон Кросби о рекламе.
Источник
5 способов загрузки из Excel в 1С
Протестировано на платформе: 8.3.18.1334
Написано в EDT: 2020.6.2.8
В конфигурации 1 обработка и 1 внешний источник данных, который нужен для реализации загрузки одного из вариантов.
Модуль формы разбит на области, для удобного копирования в свои обработки или изучения способа загрузки.
Работа с Excel через OLE на сервере
Работа с Excel используя внешний источник данных
Работа с Excel через OLE на клиенте
Загрузка в табличный документ
Работа с Excel через построитель
Скачать файлы
Наименование | Файл | Версия | Размер |
---|---|---|---|