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

Цикл

Автор v_kuzmin, 16 мар 2012, 17:58

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

v_kuzmin

Здравствуйте!У меня есть справочник в котором я что-то делаю...каждый оформленный документ попадает в форму списка...как организовать цикл что бы все эти документы автоматически выгружались в Excel??(сама выгрузка есть, но она работает из документа непосредственно,а надо как сказали чтобы после фильтрации  всё, что осталось в  этой форме выгрузилось).Заранее благодарен...

v_kuzmin

Наверно я не совсем правильно выразился попробую ещё раз...)
Здравствуйте!!Помогите пожалуйста разобраться с тем как правильно организовать цикл (прикрепил файл)т.е я сделал так чтобы можно было выгружать из каждого документа непосредственно (но это очень долго и сразу отпадает), а как организовать цикл по всем этим документам чтобы из них выгружалась табличная часть я не знаю...Подскажите пожалуйста.
Код процедуры выгрузки из документа
Процедура Команда1(Команда)
// Вставить содержимое обработчика.
Попытка
Эксель = Новый COMОбъект("Excel.Application")
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Add();
Лист = Книга.WorkSheets(1);
Лист = Книга.Sheets.Add();
//Ведомость=<<?>>ТекущийДокумент.Ведомость;
НомерСтроки=0;
Для Каждого Строка из Объект.Ведомость цикл
НомерСтроки=НомерСтроки+1;

Лист.Cells(НомерСтроки, 1).Value = Строка.Студент;
Лист.Cells(НомерСтроки, 2).Value = Строка.Понедельник;
Лист.Cells(НомерСтроки, 3).Value = Строка.Вторник;
Лист.Cells(НомерСтроки, 4).Value = Строка.Среда;
Лист.Cells(НомерСтроки, 5).Value = Строка.Четверг;
Лист.Cells(НомерСтроки, 6).Value = Строка.Пятница;
Лист.Cells(НомерСтроки, 7).Value = Строка.Суббота;
Лист.Cells(НомерСтроки, 8).Value = Строка.Воскресенье;
// и так далее, по всем нужным колонкам таб.части
КонецЦикла;

Попытка
Книга.SaveAs("C:\Users\Администратор\Downloads\1с");
Исключение
Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
Возврат;
КонецПопытки;

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

Dethmontt

Ну вот же у тебя пример прямо в коде есть
Для Каждого Строка из Объект.Ведомость цикл
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

v_kuzmin

Цитата: Dethmontt от 17 мар 2012, 17:50
Ну вот же у тебя пример прямо в коде есть
Для Каждого Строка из Объект.Ведомость цикл
например
для каждого строка из объект.наименование цикл
или надо писать про форму списка????

v_kuzmin

или
для каждого строка из формасписка.наименование  цикл
??

Dethmontt

В модуле твоего журнала
Для каждого Строка Из Объект.ИмяТабличнойЧастиТвоегоЖурнала Цикл
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

v_kuzmin

Цитата: Dethmontt от 17 мар 2012, 20:29
В модуле твоего журнала
Для каждого Строка Из Объект.ИмяТабличнойЧастиТвоегоЖурнала Цикл
а как сделать ссылку на кнопку "Выгрузить в excel" ???

v_kuzmin

т.е если я пишу в модуле объекта   а кнопка то в форме списка..

v_kuzmin

Значит я делаю так:создаю процедуру для кнопки в форме списка в ней делаю ссылку на процедуру которую буду вызывать из модуля объекта  и всёравно косяк...

&НаКлиенте
Процедура Команда1(Команда)
      ДляКоманда();   
КонецПроцедуры


мод объекта

Процедура ДляКоманда1() Экспорт
Возврат 

   // Вставить содержимое обработчика.
   Попытка
Эксель = Новый COMОбъект("Excel.Application")
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Add();
Лист = Книга.WorkSheets(1);
Лист = Книга.Sheets.Add();
//Ведомость=<<?>>ТекущийДокумент.Ведомость;
НомерСтроки=0;
Для каждого Строка Из Объект.Ведомость Цикл 
//Для Каждого Строка из Объект.Ведомость цикл
НомерСтроки=НомерСтроки+1;

Лист.Cells(НомерСтроки, 1).Value = Строка.Студент;
Лист.Cells(НомерСтроки, 2).Value = Строка.Понедельник;
Лист.Cells(НомерСтроки, 3).Value = Строка.Вторник;
Лист.Cells(НомерСтроки, 4).Value = Строка.Среда;
Лист.Cells(НомерСтроки, 5).Value = Строка.Четверг;
Лист.Cells(НомерСтроки, 6).Value = Строка.Пятница;
Лист.Cells(НомерСтроки, 7).Value = Строка.Суббота;
Лист.Cells(НомерСтроки, 8).Value = Строка.Воскресенье;
// и так далее, по всем нужным колонкам таб.части
КонецЦикла;

Попытка
Книга.SaveAs("C:\Users\Администратор\Downloads\1с");
Исключение
Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
Возврат;
КонецПопытки;

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

Dethmontt

МойСписокДокументов = ПолучитьСписокТрамПамПам();//Как ты получишь список нужных тебе документов я надеюсь объяснять не надо
Для каждого Документ Из МойСписокДокументов Цикл
МойМегаСуперОбъект = Документ.получитьОбъект();
//Дальше твой мега супер код выгрузки в ЭКСЕЛЬ где ты поменяешь СЛОВО (Переменную) ОБЪЕКТ на МойМегаСуперОбъект
//ВМЕСТО:
Для каждого Строка Из Объект.Ведомость Цикл
//ВОТ ТАК:
Для каждого Строка Из МойМегаСуперОбъект.Ведомость Цикл  

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

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

Рейтинг@Mail.ru

Поиск