|
|
|
Кнопка сохранения ПФ | ☑ | ||
|---|---|---|---|---|
|
0
YDen
07.11.24
✎
15:31
|
Здравствуйте.
Подскажите пожалуйста. 8.3 версия. Самописная конфигурация. Документ. Формируется печатная форма: Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать1)
Макет = Документы.Меню.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Меню.Дата,
| Меню.КалендарьДень,
| Меню.Номер,
| Меню.Организация,
| Меню.ТабличнаяЧасть1.(
| НомерСтроки,
| ПриемПищи,
| Раздел,
| Рецепт,
| НазваниеБлюда,
| Выход,
| Цена,
| Калорийность,
| Белки,
| Жиры,
| Углеводы
| )
|ИЗ
| Документ.Меню КАК Меню
|ГДЕ
| Меню.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
//ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьТабличнаяЧасть1Шапка = Макет.ПолучитьОбласть("ТабличнаяЧасть1Шапка");
ОбластьТабличнаяЧасть1 = Макет.ПолучитьОбласть("ТабличнаяЧасть1");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
//ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ОбластьТабличнаяЧасть1Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьТабличнаяЧасть1Шапка,Выборка.Уровень());
//ТабДок.Вывести(ОбластьТабличнаяЧасть1Шапка);
ВыборкаТабличнаяЧасть1 = Выборка.ТабличнаяЧасть1.Выбрать();
Пока ВыборкаТабличнаяЧасть1.Следующий() Цикл
ОбластьТабличнаяЧасть1.Параметры.Заполнить(ВыборкаТабличнаяЧасть1);
ТабДок.Вывести(ОбластьТабличнаяЧасть1, ВыборкаТабличнаяЧасть1.Уровень());
КонецЦикла;
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
Сообщить("Привет, Мир 3!");
//}}
КонецПроцедуры
В форме документа:
&НаКлиенте
Процедура МЦО(Команда)
МЦОНаСервере();
Сообщить("Привет, Мир!");
ТабДок = СформироватьТабДок();
СтандартнаяОбработка = Ложь;
РежимДиалога = РежимДиалогаВыбораФайла.Сохранение;
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалога);
ДиалогВыбораФайла.МножественныйВыбор = Ложь;
ДиалогВыбораФайла.Заголовок = "Выберите папку, где необходимо сохранить файл";
ДиалогВыбораФайла.ПолноеИмяФайла = Объект.ЗаказКлиента.Номер+объект.Покупатель;
ДиалогВыбораФайла.Фильтр = "Формат выгрузки(*xlsx)|*.xlsx";
Если ДиалогВыбораФайла.Выбрать() Тогда
ТабДок.Записать(ДиалогВыбораФайла.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция СформироватьТабДок()
Сообщить("Привет, Мир4!");
ТабДок = Новый ТабличныйДокумент;
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать1)
Макет = Документы.Меню.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Меню.Дата,
| Меню.КалендарьДень,
| Меню.Номер,
| Меню.Организация,
| Меню.ТабличнаяЧасть1.(
| НомерСтроки,
| ПриемПищи,
| Раздел,
| Рецепт,
| НазваниеБлюда,
| Выход,
| Цена,
| Калорийность,
| Белки,
| Жиры,
| Углеводы
| )
|ИЗ
| Документ.Меню КАК Меню
|ГДЕ
| Меню.Ссылка В (&Ссылка)";
//Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
//ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьТабличнаяЧасть1Шапка = Макет.ПолучитьОбласть("ТабличнаяЧасть1Шапка");
ОбластьТабличнаяЧасть1 = Макет.ПолучитьОбласть("ТабличнаяЧасть1");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
//ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ОбластьТабличнаяЧасть1Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьТабличнаяЧасть1Шапка,Выборка.Уровень());
//ТабДок.Вывести(ОбластьТабличнаяЧасть1Шапка);
ВыборкаТабличнаяЧасть1 = Выборка.ТабличнаяЧасть1.Выбрать();
Пока ВыборкаТабличнаяЧасть1.Следующий() Цикл
ОбластьТабличнаяЧасть1.Параметры.Заполнить(ВыборкаТабличнаяЧасть1);
ТабДок.Вывести(ОбластьТабличнаяЧасть1, ВыборкаТабличнаяЧасть1.Уровень());
КонецЦикла;
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
КонецФункции
На форме документа разместил кнопку. При ее нажатии хочу чтобы появлялось окно сохранения ПФ. Сейчас при ее нажатии указанные выше процедуры отрабатывают. Но ошибка: {Документ.Меню.Форма.ФормаДокумента.Форма(335,38)}: Переменная не определена (Ссылка)
Запрос.Параметры.Вставить("Ссылка", <<?>>Ссылка); (Проверка: Сервер) Я в верном направлении двигаюсь? Благодарю |
|||
|
1
Галахад
07.11.24
✎
15:28
|
Привет, Мир5!
|
|||
|
2
Волшебник
07.11.24
✎
15:31
|
(0) Не пользуйтесь конструкторами.
|
|||
|
3
Звездец
07.11.24
✎
15:33
|
20 лет на форуме и конструктор печатных форм? о май гад
|
|||
|
4
Garykom
07.11.24
✎
15:34
|
(3) Типа надо было СКД да?
|
|||
|
5
YDen
07.11.24
✎
15:35
|
(3) На клюшках сидел.
|
|||
|
6
Волшебник
07.11.24
✎
15:35
|
(3) Он в прошлом году v7 программировал
|
|||
|
7
Волшебник
07.11.24
✎
15:37
|
В Вашем программном коде процедура Печать(ТабДок, Ссылка) не вызывается.
А вторая строка, где могла бы быть эта ошибка, вообще закомментирована: //Запрос.Параметры.Вставить("Ссылка", Ссылка); |
|||
|
8
Волшебник
07.11.24
✎
15:38
|
Кто-то где-то врёт...
|
|||
|
9
YDen
07.11.24
✎
15:41
|
(8) При отладке закомметировал строки - на них ругань была.
|
|||
|
10
Волшебник
07.11.24
✎
15:42
|
(9) Покажите актуальный программный код и настоящий текст ошибки.
|
|||
|
11
Волшебник
07.11.24
✎
15:43
|
Как можно комментировать передачу важнейшего параметра в запрос?
![]() |
|||
|
12
Волшебник
07.11.24
✎
15:45
|
Если человек это делает, значит он тупо Ёжик в тумане и программирование не для него.
|
|||
|
13
YDen
07.11.24
✎
15:47
|
(12) Если мы перешли на личность, то вы давно выгнали из себя этого ежика?
|
|||
|
14
Stepashkin
07.11.24
✎
15:47
|
Нужно в параметр запроса передать ссылку на документ. ЭтотОбъект.Ссылка, например.
|
|||
|
15
Волшебник
07.11.24
✎
15:49
|
(13) Ещё вякни что-то подобное и выпилю с форума.
|
|||
|
16
YDen
07.11.24
✎
15:49
|
(14) Сенк.
Можете в моем коде показать что куда вставить? |
|||
|
17
Мультук
07.11.24
✎
15:51
|
(0)
1) Функция, даже в 7.7 что-от возвращает. А у вас - нет. ВставлятьРазделительСтраниц = Истина; КонецЦикла; Возврат ТабДок; КонецФункции 2) Вероятно 1С хочет всё же "Объект.Ссылка", а не "хрен пойми откуда возьмись" реквизит "ссылка" Запрос.Параметры.Вставить("Ссылка", Объект.Ссылка); |
|||
|
18
Stepashkin
07.11.24
✎
15:52
|
(16) см. (17) второе.
|
|||
|
19
Волшебник
07.11.24
✎
15:52
|
Я думаю, это сгенерированный программный код. Имеем дело с тупым ботом.
|
|||
|
20
Stepashkin
07.11.24
✎
15:53
|
(19) Как вы это определили?)
|
|||
|
21
Волшебник
07.11.24
✎
15:54
|
(20) Синтаксические ошибки, препятствующие компиляции и выполнению.
Боты генерят программы, а не запускают их. |
|||
|
22
Stepashkin
07.11.24
✎
15:55
|
(21) А, вы имеете ввиду, что YDen использовал генерацию?
|
|||
|
23
Волшебник
07.11.24
✎
15:56
|
(22) Я ему про имя "ТабличнаяЧасть1" говорил ещё в прошлой ветке. Ему похуй
Простая задача - вывод реквизита документа в печатную форму#43 |
|||
|
24
YDen
07.11.24
✎
15:56
|
(19) Мимо. Код собран с разных сайтов. На данный момент его работа меня устраивает. Вывел его (клиента) в веб. Можно сохранять форму через 4 действия, хочу разобратся как это сделать в 2.
|
|||
|
25
Волшебник
07.11.24
✎
15:56
|
(24) Идите нахуй
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |