gifts2017

Переход на Йоксель за 5 минут

Опубликовал Антон Азанов (Djelf) в раздел Программирование - Практика программирования

Быстрое внедрение ВК Йоксель в конфигурацию на примере отчета «Ведомость по контрагентам» для ТИС Релиз 7.70.954 от 22.07.2008 г.

Благодаря возможностям Йоксель в отчете есть структура документа (есть возможность свернуть/развернуть группы строк) которая сохраняется при сохранении в формат Excel.

Внедрение занимает около 5-10 минут на отчет, подходит для всех отчетов, в которых есть Процедура ВывестиГруппировку (15 отчетов в ТИС).

Благодаря выходу в свет новой версии Йокселя, (огромная благодарность за это Ужасу Бухгалтера) внедрение стало еще проще, быстрее и в большей степени соответствует поведению стандартных отчетов 1С. Стала возможна работа кнопок "Обновить" и "Расшифровка" т.е. внедрение компоненты в форму больше не требуется, (первоначальный вариант с внедрением в форму + использование formex есть в примере).

Требует внешнюю компоненту:  Йоксель версии не ниже 01.01.04. ВК в "Ведомость по Контрагентам Йоксель" не вложена. Раздобыть ее можно на домашней странице автора компоненты:  http://yoksel.net.ru/HomePage (самые последние версии компонеты на странице: http://yoksel.net.ru/Hotfixes).

Изменения:

15.01.09 Исправлена ошибка в некорректной работе кнопки "Расшифровка" и "Обновить",  спасибо за обнаружение ошибки Sagittarius и Winter.

P.S. Благодарности отсылайте разработкику ВК Йоксель

Внедрение: Сохраняем отчет как внешний и открываем его на редактирование.

  1. На слой «Подвал» помещаем флажок с идентификатором «СтандартныйРежим», он будет использоваться для возможности отката к стандартному режиму отчета.
  2. В начало модуля добавляем переменные:
	 Перем ГруппыСтрок,ПанельИнструментов;
  1. В процедуре ПриОткрытии ищем строки
 	Если Обновить <> 0 Тогда
Таб = глТаблица;
КонецЕсли;

          Меняем на:

 	Если Обновить <> 0 Тогда
Таб = глТаблица;
ПанельИнструментов = глТаблица;
КонецЕсли;
  1. В конец процедуры ПриОткрытии добавляем
	Попытка
ТабличныйДокумент=СоздатьОбъект ("ТабличныйДокумент");
Исключение
Если ЗагрузитьВнешнююКомпоненту ("SpreadSheet.dll")=0 Тогда
Сообщить("Не удалось загрузить компоненту Йоксель. "
"Компонента должна быть в каталоге BIN 1С или в каталоге базы данных. "
"Скачать компоненту можно на сайте http://yoksel.net.ru");
СтандартныйРежим=1;
КонецЕсли;
КонецПопытки;
  1. В конце процедуры ВывестиГруппировку меняем строки
	// если есть более детальная группировка - выведем ее
Если КоличествоГруппировок > Ном Тогда
ВывестиГруппировку(Запрос,Ном+1);
КонецЕсли;

          Меняем на:

	// если есть более детальная группировка - выведем ее
Если КоличествоГруппировок > Ном Тогда
НачалоГруппы = Таб.ВысотаТаблицы()+1;
ВывестиГруппировку(Запрос,Ном+1);
ОкончаниеГруппы = Таб.ВысотаТаблицы();
Если НачалоГруппы <= ОкончаниеГруппы Тогда
ГруппыСтрок.НоваяСтрока();
ГруппыСтрок.Начало = НачалоГруппы;
ГруппыСтрок.Окончание = ОкончаниеГруппы;
КонецЕсли;
КонецЕсли;
  1. В процедуре Сформировать ищем строки
	Расшифровка = СоздатьОбъект("СписокЗначений");
Расшифровка.Установить("Отчет", "ВедомостьПоКонтрагентам");

          Меняем на:

	Расшифровка = СоздатьОбъект("СписокЗначений");
Путь = "";
ИмяФайла = "";
РасположениеФайла(Путь,ИмяФайла);
ФайлОтчета = Путь + ИмяФайла;
Расшифровка.Установить("Отчет", ?(ПустоеЗначение(ФайлОтчета) = 1,"ВедомостьПоКонтрагентам", ФайлОтчета));
  1. В процедуре Сформировать ищем строки
	// ВЫВОД ГРУППИРОВОК ЗАПРОСА
ВывестиГруппировку(Запрос,1);

          Меняем на:

	// ТЗ с группировками для Yoxcel 
ГруппыСтрок=СоздатьОбъект ("ТаблицаЗначений");
ГруппыСтрок.НоваяКолонка ("Начало", "Число");
ГруппыСтрок.НоваяКолонка ("Окончание", "Число");
// ВЫВОД ГРУППИРОВОК ЗАПРОСА
ВывестиГруппировку(Запрос,1);
  1. В процедуре Сформировать ищем строку
	Таб.Показать("Ведомость по контрагентам","");

          Меняем на:

	Если СтандартныйРежим=1 Тогда
Таб.Показать("Ведомость по контрагентам", "");
Иначе
Если ТипЗначенияСтр(ПанельИнструментов) <> "Йоксель.ПанельИнструментов" Тогда
Документ = СоздатьОбъект ("ТабличныйДокумент");
Иначе
Документ = ПанельИнструментов.Документ;
Документ.Очистить ();
КонецЕсли;
Документ.ЗагрузитьИзТаблицы(Таб);

Если ТипЗначенияСтр(ПанельИнструментов) <> "Йоксель.ПанельИнструментов" Тогда
Фрейм = Документ.Показать("Ведомость по контрагентам");
Фрейм.ОтображатьСтруктуру(1);
Фрейм.ОтображатьКнопкиУровней(1);

Панель = Фрейм.ПанельИнструментов;
Панель.Видимость = 1;
// Обратите внимание если у Вас переписана ОбработкаЯчейкиТаблицы и ее события то следущие
// строки нужно привести к тому виду, какой он должен быть в Вашей конфигурации!
Панель.ПодписатьсяНаСобытие("ОбработкаЯчейкиТаблицы", "ОбработкаЯчейкиТаблицы", 1);
Иначе
Панель = ПанельИнструментов;
КонецЕсли;

Кнопка = Панель.ДобавитьКнопку("Обновить");
Кнопка.Заголовок = "Обновить";
Кнопка.Значение = РасшифровкаОбновить(1);
Кнопка = Панель.ДобавитьКнопку("Настройка");
Кнопка.Заголовок = "Настройка";
Кнопка.Значение = РасшифровкаОбновить(2);

Документ.УдалитьСтроки(1,2); // Удаляем Настройка и Обновить
// Установка группировок строк
ГруппыСтрок.ВыбратьСтроки();
Пока ГруппыСтрок.ПолучитьСтроку () = 1 Цикл
Документ.ДобавитьГруппуСтрок(ГруппыСтрок.Начало-2,ГруппыСтрок.Окончание-2);
КонецЦикла;
// Свертка всех группировок Йоксель
Для инд = -Документ.КоличествоУровнейГруппировкиСтрок() По -1 Цикл
Документ.ПоказатьУровеньГруппировокСтрок (-инд);
КонецЦикла;
Документ.ОбновитьВсеОтображения();
КонецЕсли;

 

Вот и все. Если все сделано аккуратно, и ничего не упущено, отчет переведен на работу с Йоксель.

P.S. Этот вариант конечно не идеальный, но я пытался для простоты понимания обойтись минимум изменений кода отчета.

P.P.S. Некоторые отчеты Вам возможно потребуется немного доработать. Например при нажатии кнопки "Инвентаризация" в отчете "ОстаткиТМЦ" потребуется установить СтандартныйРежим=1 и т.п.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Ведомость c использованием Formex
.1228743092 27,45Kb
25.09.09
350
.1228743092 27,45Kb 350 Скачать
Ведомость в Классическом стиле
.1229605303 31,99Kb
25.09.09
202
.1229605303 31,99Kb 202 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Анисков (vandalsvq) 09.12.08 07:29
Кстати хотел рассказать об очень "интересном" поведении 1С+Йоксель (у меня инет ограничен так что вынужден сюда писать может передашь это Uzhast-у).
Так вот если выводить кнопки по уровням (аля как в Excel для быстрой свертки) 1С можно уронить следующими действиями.
1. Разворачиваем "большую" группу (чтобы строк было столько когда на экран не вмещается)
2. Прокручиваем позицию ячейки таким образом чтобы и кнопочка +- была скрыта и окончание блока тоже. Т.е. серединка блока например.
3. Нажимаем на кнопку свертки всего уровня.
У меня далее 1С зависает и падает ножками вверх.
2. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 07:44
Спасибо автору! :) А то я все пытался сделать комплект отчетов с группами для ТиС. Теперь это будет проще :)

(1) Можешь описать подробнее, как добиться появления ошибки? Я, например, делаю так: открываю форму "Структура документа", включаю отображение структуры и кнопок уровней. Добавляю группу строк 3-50. Прокручиваю документ так, чтобы не были видно ни кнопку сворачивания, ни конец группы. Нажимаю кнопку "1". Все работает корректно. Кстати, наверное, лучше, если подобные вещи будем дальше обсуждать здесь: http://yoksel.net.ru/forum/
3. Епрст (Ёпрст) 09.12.08 09:29
Давно заменил всё на йоксель, правда с фреймами....пока.

(2) Будет ли возможность как в экселе сворачивать /разворачивать все группы ...типа кнопок сверху ?
4. Епрст (Ёпрст) 09.12.08 09:32
5. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 09:45
(3) Кстати, если это ты на сайте аналогичный вопрос задавал, то я там еще про проблемный файл ответил - хотелось бы разобраться, что там за фигня :)
6. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 09:46
(3) С фреймами скоро будет немного получше :)
7. Епрст (Ёпрст) 09.12.08 10:03
(5) Да это я...
могу кинуть куда нить...
Еще вопрос - будут ли расшифровки на внедренных объектах, типа Текст и т.д ?

ЗЫ: Автор, звиняйте за оффтопик, ваша метода оч. полезна.
Я правда сворачивал вместе с группами, т.е. если группы попадают (детализация с группами номенклатуры. к примеру,) - объединял их в одну "группу".
8. Епрст (Ёпрст) 09.12.08 10:07
+7 зарегился на форуме, туда баги запостю... и файло прикреплю.
9. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 11:30
(7) "Еще вопрос - будут ли расшифровки на внедренных объектах, типа Текст и т.д ?" Будут, но точное время сказать не могу.

PS. Да, автор, тоже извини за оффтопик :)
10. Евгений Мартыненков (JohnyDeath) 09.12.08 13:00
(3) Ёпрст, ты говоришь, что всё на йоксель перевёл. А как у тебя ведут себя пользователи, если в ширину колонки не умещаются все цифры, или наоборот: она слишком широкая? В йокселе сейчас нельзя интерактивно изменять ширину и высоту колонок. (
11. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 13:31
(10) Высоты колонок не бывает :)

Если не помещаются цифры, то можно попробовать выкрутиться через автонастройку ширины колонки. Например, делать автонастройку сразу после формирования отчета. Или предусмотреть возможность, когда пользователь по клику в заголовке колонки сможет запустить эту автонастройку (через обработку расшифровки).

Но обычно отчеты делают так, чтобы юзеру не требовалось подкручивать ширину колонок :)
12. Епрст (Ёпрст) 09.12.08 13:41
(10) на это забил + оставил штатный отчет (галкой).
Единственное, чего не хватает - ПовторятьПриПечатиСтроки...
13. Евгений Мартыненков (JohnyDeath) 09.12.08 13:41
(11) Да, не спорю, что лучше всего делать так, чтобы ширину не приходилось подкручивать. Но, млин, если делать один и тот же отчет за неделю и за квартал, то цифры будут ой как разниться, а если выбирать "примерно наибольшую", то с маленькими цифрами вся эта байда выглядит очень некрасиво.

С автонастройкой ширины по клику на названии - идея хорошая, надо будет попробывать.
14. Епрст (Ёпрст) 09.12.08 13:45
+12 Пока просто всех юзверей еще предупредил - тестите ошибки :)
Все пока довольны.
из минусов - М,М+,М- не работает, если фрейм - то без доп усилий, что либо поменять - болт...
да и так, по мелочи :)
15. Епрст (Ёпрст) 09.12.08 13:47
+ во фрейме организовать кнопки Обновить и Настройка тоже тот еще подарок :)

Зато многие спец формы, типа деклараций на ура, за счет событий..
16. Антон Азанов (Djelf) 09.12.08 13:50
(7) Я пробовал сворачивать с группами справочников, мне не очень понравилось. Дерево группировок получается, на мой взгляд, довольно непонятное и теряется смысл в свертке/развертке всех групп 2го (или еще какого нибудь) уровня.
17. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 13:51
(14) То, что "по мелочи" тоже пиши :)

(15) "во фрейме организовать кнопки Обновить и Настройка тоже тот еще подарок"

Это как раз будет основной темой нашей следующей серии, которая выйдет уже на днях :)
18. Епрст (Ёпрст) 09.12.08 13:55
(16) Не ..просто в стандартных отчетах нужно переделать макет, чтоб иерархия была "лесенкой" , а не как щас - всё в первом столбце. Тогда будет видна вся структура более наглядно. А как у вас щас - получаются " разрывы" ... Типа группы лишние..
Я посмотрел и так и сяк, оставил, чтоб группы тоже объединял.
Имхо.
19. Евгений Мартыненков (JohnyDeath) 09.12.08 14:04
Вот вы всё "фрей-фрейм", а я не могу понять в чём фишка? Зачем? Какие преимущества?
20. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 14:07
(19) Привычнее? Специфичная менюшка для таблиц? (у элемента на форме такого меню нет). А вообще, конечно, да. В 8.х там в основном отчеты в таблицах на форме сидят.
21. Епрст (Ёпрст) 09.12.08 14:09
(19) Юзверю так проще :) Привычка - страшное дело, + если нужно слепить 2/3 отчета с разными параметрами, что делать будешь?
22. Евгений Мартыненков (JohnyDeath) 09.12.08 14:11
(20) Всё равно не въеду. Можно как-нить поподробнее. Что привычнее? Какая менюшка? Что такого можно сделать во фрейме, чего нельзя сделать в ЭУ?
23. Епрст (Ёпрст) 09.12.08 14:11
Разве что закладки с новой Таблицей лепить на форме...
24. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 14:13
(22) Это менюшки под пунктами "Таблица", "Вид" и "Действия".
25. Евгений Мартыненков (JohnyDeath) 09.12.08 14:13
(21) {Сначала не заметил, что уже новая страница пошла.}
А про 3 отчета с разными параметрами расскажи - интересно (точнее пока тоже непонятно). Что ты делаешь? В 3-х отчетах сформировал по табличке, а потом всё это в одну?
26. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 14:15
(25) Наверное, имеется в виду, что отчет, скажем, формируется за 3 разных периода. Чтобы их между собой сравнивать. Или там с фильтрами другими...
27. Евгений Мартыненков (JohnyDeath) 09.12.08 14:15
(24) Из всех этих менюшек моим юзерам нужен только поиск по таблице. Смотрю твою демку, во фрейме оно не активно.
28. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 14:17
(27) "Смотрю твою демку, во фрейме оно не активно."

Да уж знаю... :)
29. Епрст (Ёпрст) 09.12.08 14:17
(25) Разные настройки, периоды, потом "сравнивают" ... Типа ОСВ Долгов по клиентосам и т.д.... Довольно таки часто все так делают.
30. Епрст (Ёпрст) 09.12.08 14:19
Один хрен, автору ВК спасибо за группировки.
Имхо, с их появлением йоксель будет внедряться в массы с огромной скоростью.
31. Евгений Мартыненков (JohnyDeath) 09.12.08 14:21
(26, 25) Понял, спсб.
Тогда другой вопрос: Ёпрст, ты как в Йоксель выводишь? Сначала выводишь всё в стандартную таблицу, а потом, не показывая её, загружаешь в Йоксель?
(28) Прям тока хотел спросить: будет/возможен поиск по таблице как во фрейме, так и в ЭУ?
32. Ужас бухгалтера (Ужас бухгалтера) 09.12.08 14:24
(30) Не за что :)

(31) Буду стремиться, чтобы везде работало.
33. Епрст (Ёпрст) 09.12.08 15:47
34. ev-kov (ev-kov) 18.12.08 21:58
Попробовал перевести, отчет не из конфы от 1с на йоксель, всё заработало, (группировк там не было). Но с расшифровкой есть ньанс, расшифровка в отчете юзается глобальная, и там используется формексовский Сервис.ВыбратьЗначение ... вот листинг ошибки

Если _Сервис.ВыбратьЗначение(Меню,Отчет) = 0 Тогда
{Глобальный модуль(391)}: Возникла критическая ошибка. Описание ошибки, возвращаемое Windows: Операция успешно завершена.
35. Антон Азанов (Djelf) 18.12.08 23:45
Иногда ВК между собой не дружат. Есть такое дело ;(
Тест написан, приложен в твоей баге на yoksel.net.ru
36. АЛьФ (АЛьФ) 19.12.08 01:23
Проблему совместимости с FormEx постараемся решить совместно в ближайшее время.
37. Sergey Zima (Winter) 13.01.09 12:52
Классная штука. Но вот есть одно но... Пытаюсь применить метод "АвтоподборШириныКолонки". Перед этим выбираю область. Мне нужно область значений ниже шапки. Выбираю область. Даю команду "АвтоподборШириныКолонки". Выравнивание идет не только по этой области, идет захват строк, выше выбранной обсласти. Я так понимаю, что этот метод аналогичен двойному щелчку в Экселе на разделители между адресами колонок. Тогда непонятно, зачем указывать начальную строку, если все равно отформатироруются все строки в выбранном диапазоне колонок?
И еще одно. попытался применить метод "Защита":

Фрейм = Документ.Показать("Выпуск продукции");
Фрейм.ОтображатьСтруктуру(1);
Фрейм.ОтображатьКнопкиУровней(1);
Фрейм.Защита (0);

И выходит ошибка: Поле агрегатного объекта не обнаружено (Защита). Может что-то делаю неправильно?
38. Sergey Zima (Winter) 13.01.09 12:52
Классная штука. Но вот есть одно но... Пытаюсь применить метод "АвтоподборШириныКолонки". Перед этим выбираю область. Мне нужно область значений ниже шапки. Выбираю область. Даю команду "АвтоподборШириныКолонки". Выравнивание идет не только по этой области, идет захват строк, выше выбранной обсласти. Я так понимаю, что этот метод аналогичен двойному щелчку в Экселе на разделители между адресами колонок. Тогда непонятно, зачем указывать начальную строку, если все равно отформатируются все строки в выбранном диапазоне колонок?
И еще одно. попытался применить метод "Защита":

Фрейм = Документ.Показать("Выпуск продукции");
Фрейм.ОтображатьСтруктуру(1);
Фрейм.ОтображатьКнопкиУровней(1);
Фрейм.Защита (0);

И выходит ошибка: Поле агрегатного объекта не обнаружено (Защита). Может что-то делаю неправильно?
39. Михаил (Sagittarius) 13.01.09 15:25
Глубочайшее уважение разработчикам ВК и автору данной темы за проведенную работу, как обычно есть маленькие косячки:
1) кнопки "Обновить" и "Настройка" работают не совсем корректно. Если в построенном отчете нажать "Настройка" и, например, изменить период отчета, то новый отчет сформируется с новым периодом, но если после этого нажать "Обновить", то отчет перестраивается с начальным периодом. Происходит это из-за того что проверка
>Если ТипЗначенияСтр(ПанельИнструментов) <> "Йоксель.ПанельИнструментов" Тогда<
выполняется только первый раз при создании фрейма в самый первый раз, остальные действия с "Обновить" и "Настройка" не вызывают перезаполнения значений кнопок новыми значениями расшифровок:
Кнопка = Панель.ДобавитьКнопку("Обновить");
Кнопка.Заголовок = "Обновить";
Кнопка.Значение = РасшифровкаОбновить(1);
Кнопка = Панель.ДобавитьКнопку("Настройка");
Кнопка.Заголовок = "Настройка";
Кнопка.Значение = РасшифровкаОбновить(2);
Предлагаю вынести данный код за пределы проверки типа значения переменной "ПанельИнструментов".

40. Sergey Zima (Winter) 13.01.09 15:30
(39) Я так же сталкнулся с этой проблемой. Все решается очень просто:
Кнопка = Панель.ПолучитьКнопкуПоИдентификатору("Обновить");
Кнопка.Значение = глРасшифровкаОбновить(1);
Кнопка = Панель.ПолучитьКнопкуПоИдентификатору("Настройка");
Кнопка.Значение = глРасшифровкаОбновить(2);
41. Ужас бухгалтера (Ужас бухгалтера) 13.01.09 15:51
(38) Насчет автоподбора ширины. Да, указание строк области ни на что не влияет - учитываются только колонки. Это было сделано, потому что ставилась как раз цель сделать аналог двойного клика в Excel :) Но, учитывая, что уже не первый раз упоминается необходимость учитывать строки при автоподборе, думаю, это можно будет сделать в одном из следующих релизов.

Насчет Защиты. Все делаете правильно, просто этот метод как-то незаметно пропал из Йокселя :) Верну в ближайшем хотфиксе.

PS. Спасибо еще раз автору данной методики перехода. Теперь вот сижу, завидую, что сам не догадался сделать что-то подобное :)
42. Антон Азанов (Djelf) 15.01.09 21:39
Sagittarius, Winter. Спасибо за обнаружение косяков.
Обработку обновил по варианту от Sagittarius.
43. Сhe Burashka (CheBurator) 13.03.09 15:42
Кстати, тут выложили зачетную обработочку, которой в принципе можно штатные отчеты превращать в группировочные без изменения кода источника...
зачетно!
44. Епрст (Ёпрст) 13.03.09 16:03
(43) И что самое удивительное, если приглядеться - то это тот-же автор!
:))
45. Сhe Burashka (CheBurator) 13.03.09 17:13
(44) Не оскудела еще земля богатырями!
46. Епрст (Ёпрст) 13.03.09 17:31
(45) новый йоксель 10 марта вышел, если что..
47. Сhe Burashka (CheBurator) 13.03.09 17:52
48. Антон Азанов (Djelf) 21.03.09 17:44
(34) FormEx`овский Сервис.ВыбратьЗначение наконец заработал во Фрейме на последнем Йокселе. Только вместо
Сервис.ВыбратьЗначение(Список,Зн);
надо писать
Сервис.ВыбратьЗначение(Список,Зн,,,2);
49. Сhe Burashka (CheBurator) 21.03.09 19:15
еще бы вертикальнфе развороты приделать...
50. Антон Азанов (Djelf) 21.03.09 22:33
(49) Так ведь это не разработка в прямом смысле этого слова, а так, простенькое пособие по переходу на Йоксель. Перегружать пример лишним кодом думаю не стоит.
Кроме того, для вертикальных разворотов нужно в отчетах заводить дополнительные колонки на которые пойдет свертка, иначе в свернутом состоянии будет чепуха, а это уже выходит за рамки "простенького пособия" ;)

P.S. Для НовейшихОтчетов группировка кросс-таблиц во вертикали уже сделана в "Переход на Йоксель за 1 минуту".
51. Александр Беленков (panver) 12.11.11 00:14
Спасибо автору. До этого никогда не сталкивался с выводом таб части как в Ексель (группировки по уровням).
52. Denis (diocompany) 18.01.12 14:52
Спасибо Автору публикации!
Изложено всё очень понятно!
Спасибо Авторам внешней компоненты!
Всё работает на Ура!
53. Дмитрий (gosizo) 24.10.12 08:17
Спасибо.

Переделал несколько отчетов и сразу появились хотелки у манагеров и руководства.
Допустим есть прайс с группировками.
Можно ли сделать возможность помечать некоторые позиции товара (запоминая их в список значений) с тем, что бы обработать?
54. Дмитрий (gosizo) 14.01.13 15:02
(43)(44) можно ссылку? Что-то я не нашел в разработках автора или не так понял комментарий (43)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа