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

Добавление периода в обработку

Автор Александр Жолнин, 24 янв 2022, 12:51

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

Александр Жолнин

Здравствуйте дамы и господа! Я начинающий программист (Только учусь). Не могли бы вы помочь разобраться в одном вопросе: какой код нужно дописать, что бы во внешней обработке выгружался документ с использованием периода


&НаСервереБезКонтекста
Процедура ВыгрузитьНаСервере(ПутьКФайлу)


 ApplicationExcel = Новый COMОбъект("Excel.Application");
 ApplicationExcel.Visible = Истина;
 ApplicationExcel.Workbooks.Open(ПутьКФайлу);
 ApplicationExcel.Sheets(1).Cells(1, 1).Value = "Номер";
 ApplicationExcel.Sheets(1).Cells(1, 2).Value = "Контрагент";
 ApplicationExcel.Sheets(1).Cells(1, 3).Value = "Сумма";
 ApplicationExcel.Sheets(1).Cells(1, 4).Value = "Дата";
 
 Контрагент = Строка(Контрагент);
 Выборка = Документы.РасходныйКассовыйОрдер.Выбрать();
 
 Сч = 2;
 
 
 Пока Выборка.Следующий() Цикл 

ApplicationExcel.Sheets(1).Cells(Сч, 1).Value = Выборка.Номер;
ApplicationExcel.Sheets(1).Cells(Сч, 2).Value = Выборка.Контрагент.Наименование;
ApplicationExcel.Sheets(1).Cells(Сч, 3).Value = Выборка.Сумма;
ApplicationExcel.Sheets(1).Cells(Сч, 4).Value = Выборка.Дата;

Сч = Сч+1;
КонецЦикла;

 
КонецПроцедуры
  &НаКлиенте
Процедура Выгрузить(Команда)
ВыгрузитьНаСервере(ПутьКФайлу);
КонецПроцедуры
  &НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)


ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораФайла.Фильтр                      = НСтр("ru='CSV файл (*.xlsx)|*.xlsx'");
ДиалогВыбораФайла.Заголовок                   = НСтр("ru='Выберите xlsx файл'");
ДиалогВыбораФайла.ПредварительныйПросмотр     = Ложь;
ДиалогВыбораФайла.Расширение                  = "csv";
ДиалогВыбораФайла.ИндексФильтра               = 0;
ДиалогВыбораФайла.ПолноеИмяФайла              = ПутьКФайлу;
ДиалогВыбораФайла.ПроверятьСуществованиеФайла = Ложь;
Если ДиалогВыбораФайла.Выбрать() Тогда
ПутьКФайлу = ДиалогВыбораФайла.ПолноеИмяФайла;
КонецЕсли;


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


[attach id=36389]27.jpg[/attach]


27.jpg

LexaK

Александр Жолнин, самое главное для начинающего программиста, это научиться читать СП - синтаксис помощник, там почти все подсказки!

так для команды Выбрать(), написано следующее
ДокументМенеджер.<Имя документа> (DocumentManager.<Document name>)
Выбрать (Select)
Синтаксис:
Выбрать(<ДатаНачала>, <ДатаОкончания>, <Отбор>, <Порядок>)
Параметры:
<ДатаНачала> (необязательный)
и т.д.
Тип: Дата.


в этой команде и надо указать даны вашего, выбранного Периода.

Сможете с такой "толстой" подсказкой, сами доделать свой код?
(всего то, передать и расставить параметры)

Если не сможете, то пишите, подскажем как передавать параметры в процедуры.
если помогло нажмите: Спасибо!

Александр Жолнин

LexaK, к сожалению не разобрался :(

LexaK

вот ваш код куда добавлена передача параметра: Период
(как-то не понятно, как вы без таких элементарных понятий, как передача параметров, что-то пытаетесь программировать?  :xfbnsdfb:  )
&НаСервереБезКонтекста
Процедура ВыгрузитьНаСервере(ПутьКФайлу, Период)

   
 ApplicationExcel = Новый COMОбъект("Excel.Application");
 ApplicationExcel.Visible = Истина;
 ApplicationExcel.Workbooks.Open(ПутьКФайлу);
 ApplicationExcel.Sheets(1).Cells(1, 1).Value = "Номер";
 ApplicationExcel.Sheets(1).Cells(1, 2).Value = "Контрагент";
 ApplicationExcel.Sheets(1).Cells(1, 3).Value = "Сумма";
 ApplicationExcel.Sheets(1).Cells(1, 4).Value = "Дата";
 
 Контрагент = Строка(Контрагент);
 //здесь из Периода, задаем даты отбора
 Выборка = Документы.РасходныйКассовыйОрдер.Выбрать(Период.ДатаНачала, Период.ДатаОкончания);
 
 Сч = 2;
 
 
 Пока Выборка.Следующий() Цикл 
     
     ApplicationExcel.Sheets(1).Cells(Сч, 1).Value = Выборка.Номер;
     ApplicationExcel.Sheets(1).Cells(Сч, 2).Value = Выборка.Контрагент.Наименование;
     ApplicationExcel.Sheets(1).Cells(Сч, 3).Value = Выборка.Сумма;
     ApplicationExcel.Sheets(1).Cells(Сч, 4).Value = Выборка.Дата;
     
    Сч = Сч+1;
КонецЦикла;

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

&НаКлиенте
Процедура Выгрузить(Команда)
    ВыгрузитьНаСервере(ПутьКФайлу, Период); //вот здесь добавили передачу параметра: Период
КонецПроцедуры
если помогло нажмите: Спасибо!

Александр Жолнин

LexaK, Очень непросто все получается, но пытаюсь разобраться.

По вашему коды выдало ошибки:
{ВнешняяОбработка.Выгрузка.Форма.Форма.Форма(14,53)}: Переменная не определена (Период)
 Выборка = Документы.РасходныйКассовыйОрдер.Выбрать(<<?>>Период.ДатаНачала, Период.ДатаОкончания); (Проверка: Сервер)
{ВнешняяОбработка.Выгрузка.Форма.Форма.Форма(14,72)}: Переменная не определена (Период)
 Выборка = Документы.РасходныйКассовыйОрдер.Выбрать(Период.ДатаНачала, <<?>>Период.ДатаОкончания); (Проверка: Сервер)
{ВнешняяОбработка.Выгрузка.Форма.Форма.Форма(33,36)}: Слишком много фактических параметров (ВыгрузитьНаСервере)
    ВыгрузитьНаСервере(ПутьКФайлу, <<?>>Период); //вот здесь добавили передачу параметра: Период (Проверка: Тонкий клиент)

LexaK

Александр Жолнин, хи-хи, похоже вам не удалось даже пример скопировать!

в ответе было
&НаСервереБезКонтекста
Процедура ВыгрузитьНаСервере(ПутьКФайлу, Период)

а у вас в коде осталось

&НаСервереБезКонтекста
Процедура ВыгрузитьНаСервере(ПутьКФайлу)

как в шараде для маленьких детей - найдите разницу!

если помогло нажмите: Спасибо!

Александр Жолнин


Теги:

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

Рейтинг@Mail.ru

Поиск