//В конфигураторе в форму документа добавляем "кнопку" а в табличную часть добавляем реквизит "Цена".
//Стандартную процедура "МатериалыНоменклатураПриИзменении" приводим вот к такому типу
&НаКлиенте
Процедура МатериалыНоменклатураПриИзменении(Элемент,Цена)
ТекущиеДанные = Элементы.Материалы.ТекущиеДанные;
// Подготовим данные для передачи на сервер
КонтейнерОбъект = Новый Структура;
КонтейнерСтрока = Новый Структура("Номенклатура, ОтражениеВУСН");
ЗаполнитьЗначенияСвойств(КонтейнерСтрока, ТекущиеДанные);
ПараметрыЗаполненияСчетовУчета = НачатьЗаполнениеСчетовУчета(
"Материалы.Номенклатура",
Объект,
ТекущиеДанные,
КонтейнерОбъект,
КонтейнерСтрока);
Ном = ТекущиеДанные.Номенклатура;
// Заполним
Изменения = МатериалПриИзмененииНаСервере(КонтейнерСтрока, КонтейнерОбъект, ПараметрыЗаполненияСчетовУчета.КЗаполнению);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, Изменения);
СтрокаТЧ = ТекущиеДанные;
СтрокаТЧНаименование = СтрокаТЧ.Номенклатура;
СписокЗЧНаименованиеПриИзмененииНаСервере(СтрокаТЧНаименование,Цена);
ТекущиеДанные.Цена = Цена;
КонецПроцедуры
//Дальше пишем свое:
&НаКлиенте
Процедура ВыгрузитьТЧ(Команда)
ТекущиеДанные = Элементы.Материалы.ТекущиеДанные;
Цена = ТекущиеДанные.Цена;
Эксель(Цена);
КонецПроцедуры
&НаСервере
Процедура Эксель(Цена)
// Заполняем ТаблицуЗначений
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Склад",Новый ОписаниеТипов("Строка"));
ТЗ.Колонки.Добавить("Поставщик");
ТЗ.Колонки.Добавить("Получатель");
ТЗ.Колонки.Добавить("Код");
ТЗ.Колонки.Добавить("Товар",Новый ОписаниеТипов("Строка"));
ТЗ.Колонки.Добавить("Количество",Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Цена",Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Сумма");
ТЗ.Колонки.Добавить("НДС");
ТЗ.Колонки.Добавить("Всего");
ТЗ.Колонки.Добавить("Ед");
ТЗ.Колонки.Добавить("СтавкаНДС",Новый ОписаниеТипов("Строка"));
Для Каждого Строка из Объект.Материалы Цикл
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Код = Строка.Номенклатура.Код;
НоваяСтрока.Товар = Строка.Номенклатура;
НоваяСтрока.Количество = Строка.Количество;
НоваяСтрока.Цена = Цена;
НоваяСтрока.Сумма = Цена*Строка.Количество;
Номенклатура = Строка.Номенклатура;
НоваяСтрока.Всего = Цена*Строка.Количество;
НоваяСтрока.Ед = Строка.ЕдиницаИзмерения.Наименование;
НоваяСтрока.СтавкаНДС = Строка.Номенклатура.УдалитьСтавкаНДС;
КонецЦикла ;
Попытка
// Загрузка объекта Microsoft Excel
Сообщить("Выгрузка данных из 1С в Microsoft Excel...");
Excel = Новый COMОбъект("Excel.Application");
Excel.DisplayAlerts = False; // отключаем лишние вопросы Excel, актуально при перезаписи существующего документа
Исключение
Сообщить("Ошибка при запуске Microsoft Excel."
+ Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
Возврат;
КонецПопытки;
//Создаём новую книгу в Excel
Excel.WorkBooks.Add();
Сообщить(Excel.WorkBooks);
//Задаём ширину колонок
Excel.WorkBooks(1).WorkSheets("Лист1").Columns(1).ColumnWidth = 25;
Excel.WorkBooks(1).WorkSheets("Лист1").Columns(2).ColumnWidth = 25;
Excel.WorkBooks(1).WorkSheets("Лист1").Columns(3).ColumnWidth = 13;
Excel.WorkBooks(1).WorkSheets("Лист1").Columns(4).ColumnWidth = 9;
Excel.WorkBooks(1).WorkSheets("Лист1").Columns(5).ColumnWidth = 9;
Excel.WorkBooks(1).WorkSheets("Лист1").Columns(6).ColumnWidth = 9;
Excel.WorkBooks(1).WorkSheets("Лист1").Columns(7).ColumnWidth = 9;
//Выводим текст заголовка документа
Excel.WorkBooks(1).WorkSheets("Лист1").cells(2,1).value = "Приходная накладная";
//Устанавливаем размер шрифта
Excel.WorkBooks(1).WorkSheets("Лист1").cells(1,1).font.size = 12;
//Устанавливаем признак шрифта «жирный»
Excel.WorkBooks(1).WorkSheets("Лист1").cells(1,1).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(2,1).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(2,1).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(2,2).value = Объект.Номер;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(2,2).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(2,2).font.bold = 1;
//дата накладной
Excel.WorkBooks(1).WorkSheets("Лист1").cells(2,3).value = Объект.Дата;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(2,3).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(2,3).font.bold = 1;
//Указываем наименование нашей организации, также могут указываться и другие реквизиты предприятия
Орг = "АО Солгон";
КодПоставщика = Объект.Склад.Код ;
Поставщик = Объект.Склад.Наименование;
Получатель = Объект.Контрагент.Наименование;
КодПолучателя = Объект.Контрагент.Код;
// указываем организацию
Excel.WorkBooks(1).WorkSheets("Лист1").cells(4,2).value = Орг;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(4,2).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(4,2).font.bold = 1;
//подпись поставщика
Excel.WorkBooks(1).WorkSheets("Лист1").cells(5,1).value = "Поставщик";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(5,1).font.size = 12;
//указываем код поставщика
Excel.WorkBooks(1).WorkSheets("Лист1").cells(5,2).value = КодПоставщика;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(5,2).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(5,2).font.bold = 1;
//указываем поставщика
Excel.WorkBooks(1).WorkSheets("Лист1").cells(5,3).value = Поставщик;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(5,3).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(5,3).font.bold = 1;
//Подпись получателя
Excel.WorkBooks(1).WorkSheets("Лист1").cells(6,1).value = "Получатель";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(6,1).font.size = 12;
//указываем код получателя
Excel.WorkBooks(1).WorkSheets("Лист1").cells(6,2).value = КодПолучателя;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(6,2).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(6,2).font.bold = 1;
// указываем получателя
Excel.WorkBooks(1).WorkSheets("Лист1").cells(6,3).value = Получатель;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(6,3).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(6,3).font.bold = 1;
//
//«Шапка» табличной части, заголовки столбцов
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,1).value = "Код";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,1).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,1).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,2).value = "Наименование";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,2).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,2).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,3).value = "Количество";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,3).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,3).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,4).value = "Цена";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,4).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,4).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,5).value = "Сумма";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,5).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,5).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,6).value = "НДС";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,6).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,6).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,7).value = "Всего";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,7).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,7).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,8).value = "Ед изм";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,8).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,8).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,9).value = "Ставка НДС (%)";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,9).font.size = 12;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(7,9).font.bold = 1;
//Выбираем строки ведомости, цикл по всем строкам
Счетчик = 9;
Для Каждого СтрокаТЗ из ТЗ Цикл
//Устанавливаем формат ячейки Excel для номера счета как строковый, чтобы отображались все 20 символов
// ****************************************************************************************
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,1). NumberFormat = "@";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,2). NumberFormat = "@";
//Устанавливаем код товара
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,1).value = СтрокаТЗ.Код;
//Устанавливаем наименвоание товара
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,2).value = СтрокаТЗ.Товар;
//Устанавливаем количество товара
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,3).value = СтрокаТЗ.Количество;
//Устанавливаем цену товара
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,4).value = СтрокаТЗ.Цена;
////Устанавливаем сумму
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,5).value = СтрокаТЗ.Сумма;
////Устанавливаем НДС
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,6).value = СтрокаТЗ.НДС;
////Устанавливаем Всего
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,7).value = СтрокаТЗ.Всего;
////Еденица измерения
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,8).value = СтрокаТЗ.Ед;
////СтавкаНДС
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик,9).value = СтрокаТЗ.СтавкаНДС;
//*****************************************************************************************
Счетчик = Счетчик + 1;
КонецЦикла;
//Выводим итоговую строку
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик+1,1).NumberFormat = "@";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик+1,1).value ="Итого:";
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик+1,7).font.bold = 1;
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик+1,1).font.bold = 1;
//Вводим формулу в ячейку, считаем итоговую сумму
Excel.WorkBooks(1).WorkSheets("Лист1").cells(Счетчик+1,7).FormulaR1C1 ="=SUM(R[-"+Строка(Счетчик-8)+"]C:R[-2]C)";
// Сохраним созданную книгу в файл xls
Если КодПоставщика = "000000094" Тогда
Excel.ActiveWorkBook.SaveAs("C:\Users\Public\Накладные\Молзавод\"+Объект.Номер+".xls");
ИначеЕсли
КодПоставщика = "000000125" Тогда
Excel.ActiveWorkBook.SaveAs("C:\Users\Public\Накладные\Пекарн\"+Объект.Номер+".xls");
ИначеЕсли
КодПоставщика = "000000056" Тогда
Excel.ActiveWorkBook.SaveAs("C:\Users\Public\Накладные\Колбасный\"+Объект.Номер+".xls");
КонецЕсли;
// Обязательно закроем соединение с COM объектом для освобождения памяти
Excel.Quit();
Сообщить("Файл выгружен успешно");
Excel.Quit();
КонецПроцедуры
//Обработка изначально писалась для Бухгалтерии 7.7, теперь переделалась под управляемые формы 1С:Предприятие 8. Бухгалтерия сельскохозяйственного предприятия, редакция 3.0 (3.0.73.51)
//В коде в блоке сохранения ("// Сохраним созданную книгу в файл xls") указаны пути для сохранения файла с условием отбора по коду склада. Нужно поменять под свои ( если нужно разделение по папкам).
Обработка изначально писалась для Бухгалтерии 7.7, теперь переделалась под управляемые формы 1С:Предприятие 8. Бухгалтерия сельскохозяйственного предприятия, редакция 3.0 (3.0.73.51).