Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
Регина24
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 10
1

Внешняя печатная форма

28.01.2014, 11:13. Просмотров 3585. Ответов 14

Добрый день! Подскажите, пожалуйста, как сделать внешнюю печатную форму для макета СписокПеречисленийЗарплатыВБанк.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2014, 11:13
Ответы с готовыми решениями:

Не работает внешняя печатная форма
Здравствуйте! Делаю внешнюю печатную форму для документа "Разовые начисления организаций". ...

Внешняя печатная форма дополнительного соглашения
Здравствуйте! Делаю внешнюю печатную форму Дополнительного соглашения к договору (зуп3.1). Не могу...

Внешняя печатная форма ценников. ЗАПРОСЫ
День добрый. Я начинающий программист. Есть задача, но знаний не хватает. Прошу помощи. Есть...

Внешняя печатная форма для реестра
Здравствуйте, такой вопрос, как думаете, если сделать внешнюю печатную форму для формирования...

Внешняя печатная форма не распечатывает непроведенные документы
Здравствуйте. Создал внешнюю печатную форму для документа НакладнаяНаОтпускМ15(конфигурация...

14
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
28.01.2014, 13:07 2
ВФП делается для документа.
Где мы?
0
Регина24
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 10
28.01.2014, 16:20  [ТС] 3
для документа ЗарплатаКВыплатеОрганизаций

Добавлено через 2 часа 52 минуты
ВПФ для докумета ЗарплатаКВыплатеОрганизаций с выводом на печать списка перечисляемой в банк зарплаты (макет СписокПеречисленийЗарплатыВБанк). Может так понятнее. Вывод этого документа уже реализован в системе, хотелось бы сделать тоже самое,только через внешнюю обработку. Я запуталась в функциях...(
0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
28.01.2014, 17:34 4
К_о_н_ф_и_г_у_р_а_ц_и_я ?_!!
1. Сделайте пока обработку с формой, где выбирается соотв.док. и отладьте.
2. Потом поиск по разделу по "ВПФ"

Есть подозрение, что по кнопке Выполнить будет одна строчка:
1C
1
ЗарплатаКВыплатеОрганизацийПереопределяемый.Печать("ПереченьПолностью",1,Ложь, СсылкаНаОбъект);
СсылкаНаОбъект - реквизит обработки и данные поля ввода на форме.
Потом надо перетащить это в модуль объекта с экспортной прокой Печать()
0
28.01.2014, 17:34
Scarfase
29 / 29 / 0
Регистрация: 05.12.2012
Сообщений: 308
28.01.2014, 19:07 5
как вариант можно посмотреть и далее по ютубу в таком духе
0
Регина24
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 10
29.01.2014, 08:21  [ТС] 6
Спасибо...все это я сделала, а вот с функцией печать возникли проблемы, я ее взяла из общего модуля ФормированиеПечатныхФормДополнительный.

Не знаю, что писать в модуле объекта своей внешней обработки((((((
0
OrkVasya
о_____О
Эксперт 1С
221 / 221 / 36
Регистрация: 19.11.2010
Сообщений: 1,061
Завершенные тесты: 1
29.01.2014, 09:16 7
Общий смысл - вам нужно взять процедуру печати макета из конфы и везде, где идет обращение к полям документа проставить "СсылкаНаОбъект.".
Это в случае обычных форм, естественно.
0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
29.01.2014, 12:23 8
Я кому пейсал-то?http://www.cyberforum.ru/1c/thread1083457.html#post5706043

Добавлено через 1 минуту
Функция Печать() должна возвратить ТабДок, но может возвратить и Неопределено, отработав штатную печать из ОбМодуля
0
Регина24
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 10
29.01.2014, 14:46  [ТС] 9
Цитата Сообщение от duk337 Посмотреть сообщение
Я кому пейсал-то?http://www.cyberforum.ru/1c/thread1083457.html#post5706043

Добавлено через 1 минуту
Функция Печать() должна возвратить ТабДок, но может возвратить и Неопределено, отработав штатную печать из ОбМодуля

Ничего не получается...

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
Функция ЗапросСпискаДляПечатиПеречняПеречислений(ДатаДокумента, Ведомости, ФИОСокращенно)
 
    Запрос = Новый Запрос;
 
    Запрос.УстановитьПараметр("ДатаДокумента",  ДатаДокумента);
    Запрос.УстановитьПараметр("Ведомости",      Ведомости);
    Запрос.УстановитьПараметр("ФИОСокращенно",  ФИОСокращенно);
    
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |   ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо КАК Физлицо,
    |   ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
    |   СУММА(ЗарплатаКВыплатеОрганизацийЗарплата.Сумма + ЗарплатаКВыплатеОрганизацийЗарплата.КомпенсацияЗаЗадержкуЗарплаты) КАК Сумма
    |ПОМЕСТИТЬ ВТВыплаты
    |ИЗ
    |   Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации
    |       ПО ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = ЛицевыеСчетаРаботниковОрганизации.ФизЛицо
    |           И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Банк = ЛицевыеСчетаРаботниковОрганизации.Банк
    |           И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Организация = ЛицевыеСчетаРаботниковОрганизации.Организация
    |ГДЕ
    |   ЗарплатаКВыплатеОрганизацийЗарплата.Сумма + ЗарплатаКВыплатеОрганизацийЗарплата.КомпенсацияЗаЗадержкуЗарплаты > 0
    |   И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка В(&Ведомости)
    |
    |СГРУППИРОВАТЬ ПО
    |   ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо,
    |   ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета
    |
    |ИНДЕКСИРОВАТЬ ПО
    |   Физлицо
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   ЕСТЬNULL(ФИОФизЛицСрезПоследних.Фамилия + ВЫБОР
    |           КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) <> """"
    |               ТОГДА "" "" + ВЫБОР
    |                       КОГДА &ФИОСокращенно
    |                           ТОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) + "".""
    |                       ИНАЧЕ ФИОФизЛицСрезПоследних.Имя
    |                   КОНЕЦ
    |           ИНАЧЕ """"
    |       КОНЕЦ + ВЫБОР
    |           КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) <> """"
    |               ТОГДА "" "" + ВЫБОР
    |                       КОГДА &ФИОСокращенно
    |                           ТОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) + "".""
    |                       ИНАЧЕ ФИОФизЛицСрезПоследних.Отчество
    |                   КОНЕЦ
    |           ИНАЧЕ """"
    |       КОНЕЦ, Выплаты.Физлицо.Наименование) КАК ФизЛицо,
    |   Выплаты.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
    |   Выплаты.Сумма КАК Сумма
    |ИЗ
    |   ВТВыплаты КАК Выплаты
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(
    |               &ДатаДокумента,
    |               Физлицо В
    |                   (ВЫБРАТЬ РАЗЛИЧНЫЕ
    |                       СписокФизЛиц.Физлицо
    |                   ИЗ
    |                       ВТВыплаты КАК СписокФизЛиц)) КАК ФИОФизЛицСрезПоследних
    |       ПО Выплаты.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо
    |
    |УПОРЯДОЧИТЬ ПО
    |   ФизЛицо";
    
    
    Возврат Запрос;
    
КонецФункции // СформироватьЗапросДляПечатиПеречняПеречислений()
 
 
 
Функция ЗапросШапкиДляПечатиСпискаПеречислений(ПечатаемыйДокумент)
 
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("ПечатаемыйДокумент", ПечатаемыйДокумент);
    Запрос.УстановитьПараметр("СтруктурнаяЕдиница", ПечатаемыйДокумент.Организация);
    Запрос.УстановитьПараметр("ДатаДокумента",      ПечатаемыйДокумент.Дата);
    
    Запрос.Текст = 
        ФормированиеПечатныхФормЗК.ПолучитьТекстЗапросаПоОтветственнымЛицам(
            "ДатаДокумента",
            "ОтветственноеЛицо В (ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель),ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер))
            |И СтруктурнаяЕдиница = &СтруктурнаяЕдиница")
        + ";"
        +Символы.ПС
        +Символы.ПС
        + "////////////////////////////////////////////////////////////////////////////////"
        +Символы.ПС
        +
        "ВЫБРАТЬ
        |   ПечатаемыйДокумент.Дата КАК ДатаДок,
        |   ПечатаемыйДокумент.Организация.НаименованиеПолное КАК НазваниеОрганизации,
        |   ПечатаемыйДокумент.ХарактерВыплаты как ХарактерВыплаты,
        |   ГлавныйБухгалтер.НаименованиеОтветственногоЛица КАК ФИОГлБуха
        |ИЗ
        |   Документ." + ПечатаемыйДокумент.Метаданные().Имя + " КАК ПечатаемыйДокумент
        |       ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОбОтветственномЛице КАК ГлавныйБухгалтер
        |       ПО (ГлавныйБухгалтер.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер))
        |ГДЕ
        |   ПечатаемыйДокумент.Ссылка = &ПечатаемыйДокумент";
 
    Возврат Запрос;
 
КонецФункции // СформироватьЗапросДляПечати()
 
 
// Функция формирует табличный документ с печатной формой "Список плательщиков в банк".
//
// Параметры
//  ПечатаемыйДокумент - документ, из которого выполняется печать
//      Платежное поручение исходящее или Зарплата к выплате организаций
//  Ведомости - массив, документы Зарплата к выплате организаций
//  ФИОСокращенно - булево, используется для идентификации печати ФИО с инициалами
// Возвращаемое значение:
//  Табличный документ - печатная форма
//
Функция Печать(ПечатаемыйДокумент, Ведомости, ФИОСокращенно = Истина) Экспорт
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ПолеСлева = 0;
    ТабДокумент.ПолеСправа = 0;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписокПеречислений";
    
    Макет       = ПолучитьМакет("Макет");
    
    // получаем данные для печати
    ВыборкаДляШапки = ЗапросШапкиДляПечатиСпискаПеречислений(ПечатаемыйДокумент).Выполнить().Выбрать();
    ВыборкаРаботники = ЗапросСпискаДляПечатиПеречняПеречислений(ПечатаемыйДокумент.Дата, Ведомости, ФИОСокращенно).Выполнить().Выбрать();
    
    // подсчитываем количество страниц документа - для корректного разбиения на страницы
    ВсегоСтрокДокумента = ВыборкаРаботники.Количество();
 
    ОбластьМакетаШапкаДокумента = Макет.ПолучитьОбласть("ШапкаДокумента");
    ОбластьМакетаШапка          = Макет.ПолучитьОбласть("Шапка");
    ОбластьМакетаСтрока         = Макет.ПолучитьОбласть("Строка");
    ОбластьМакетаИтогПоСтранице = Макет.ПолучитьОбласть("ИтогПоЛисту");
    ОбластьМакетаПодвал         = Макет.ПолучитьОбласть("Подвал");
    
    // массив с двумя строками - для разбиения на страницы
    ВыводимыеОбласти = Новый Массив();
    ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
    ВыводимыеОбласти.Добавить(ОбластьМакетаИтогПоСтранице);
    
    // выводим данные о руководителях организации
    Пока ВыборкаДляШапки.Следующий() Цикл
        ОбластьМакетаШапкаДокумента.Параметры.Заполнить(ВыборкаДляШапки); // Шапка документа.
        ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации = СокрЛП(ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации);
        ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаДляШапки);
        ОбластьМакетаПодвал.Параметры.Заполнить(ВыборкаДляШапки); // подписи
    КонецЦикла;
    
    ТабДокумент.Вывести(ОбластьМакетаШапкаДокумента);
    ТабДокумент.Вывести(ОбластьМакетаШапка);
    
    ВыведеноСтраниц = 1; ВыведеноСтрок = 0; ИтогоНаСтранице = 0; Итого = 0;
    // выводим данные по строкам документа.
    Пока ВыборкаРаботники.Следующий() Цикл
    
        // разбиение на страницы
        ВыведеноСтрок = ВыведеноСтрок + 1;
        
        ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаРаботники);
        ОбластьМакетаСтрока.Параметры.НомерСтроки = ВыведеноСтрок;
        
        // Проверим, уместится ли строка на странице или надо открывать новую страницу
        ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти);
        Если Не ВывестиПодвалЛиста и ВыведеноСтрок = ВсегоСтрокДокумента Тогда
            ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
            ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти);
        КонецЕсли;
        Если ВывестиПодвалЛиста Тогда
            
            ОбластьМакетаИтогПоСтранице.Параметры.ИтогоНаСтранице = ИтогоНаСтранице;
            ТабДокумент.Вывести(ОбластьМакетаИтогПоСтранице);
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            ТабДокумент.Вывести(ОбластьМакетаШапка);
            ВыведеноСтраниц = ВыведеноСтраниц + 1;
            ИтогоНаСтранице = 0;
            
        КонецЕсли;
        
        ТабДокумент.Вывести(ОбластьМакетаСтрока);
        ИтогоНаСтранице = ИтогоНаСтранице + ВыборкаРаботники.Сумма;
        Итого = Итого + ВыборкаРаботники.Сумма;
 
    КонецЦикла;
 
    Если ВыведеноСтрок > 0 Тогда 
        ОбластьМакетаИтогПоСтранице.Параметры.ИтогоНаСтранице = ИтогоНаСтранице;
    КонецЕсли;
    
    ВыводимыеОбласти = Новый Массив();
    ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
    ВыводимыеОбласти.Добавить(ОбластьМакетаИтогПоСтранице);
    ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
    Для Сч = 1 По ОбластьМакетаСтрока.Параметры.Количество() Цикл
        ОбластьМакетаСтрока.Параметры.Установить(Сч - 1,""); 
    КонецЦикла;
    ОбластьМакетаСтрока.Параметры.Физлицо = " " + Символы.ПС + " ";
    Пока ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти, Ложь) Цикл
        ТабДокумент.Вывести(ОбластьМакетаСтрока);
    КонецЦикла;
    
    ТабДокумент.Вывести(ОбластьМакетаИтогПоСтранице);
    ОбластьМакетаПодвал.Параметры.Итого = Итого;
    ТабДокумент.Вывести(ОбластьМакетаПодвал);
 
    Возврат ТабДокумент;
    
КонецФункции // ПечатьСписокПеречислений()
 
        
 
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОТЧЕТОВ
Добавлено через 13 минут
я только начала изучение 1С...не судите мою непонятливость строго
0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
29.01.2014, 17:24 10
Цитата Сообщение от Регина24 Посмотреть сообщение
Ничего не получается...
конкретнее.
1. Вы тщательно скрываете разновидность конфигураци.
2. Ваша задача из Функции Печать() запустить штатную процедуру. Она что, не работает?
3. Если Вам надо её переделать, скопировав в свой модуль, тогда
Цитата Сообщение от OrkVasya Посмотреть сообщение
везде, где идет обращение к полям документа проставить "СсылкаНаОбъект."
, либо скопировать все реквизиты дока в обработку, добавив Номер и Дата и первой строкой залепить ЗаполнитьЗначенияСвойств(ЭтотОбъект,СсылкаНаОбъект)
4. Печать() должна Возврат ТабДок
0
Регина24
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 10
30.01.2014, 10:42  [ТС] 11
зарплата и управление персоналом 8.2

Добавлено через 26 минут
http://files.mail.ru/3CDE5811F6094A6EAA11FDF67DF0A266
0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
30.01.2014, 12:10 12
1. Фалы цепляйте прямо к сообщению (Расширенный режим).
2. Модуль формы:
1C
1
2
3
Процедура КнопкаВыполнитьНажатие(Кнопка)
Печать(Истина);
КонецПроцедуры
3. Модуль объекта
1C
1
2
3
Функция Печать() Экспорт
Возврат ЗарплатаКВыплатеОрганизацийПереопределяемый.Печать("ПереченьПолностью",1,Ложь,СсылкаНаОбъект);
КонецФункции
0
Вложения
Тип файла: rar список.rar (6.5 Кб, 40 просмотров)
duk337
30.01.2014, 12:13
  #13

Не по теме:

зарплатники наиболее умелые и остроумные из ваятелей конфиг в 1с

1
Регина24
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 10
30.01.2014, 14:04  [ТС] 14
не совсем то...здесь вызывается общий макет, а не мой
0
Регина24
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 10
31.01.2014, 16:09  [ТС] 15
все...доделала...всем большое спасибо за содействие)
0
31.01.2014, 16:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2014, 16:09

8.2, Внешняя печатная форма для Комплексной автоматизации 1.1
Доброго времени суток. Прошу помощи по 1с. Версия платформы: 8.2. Конфигурация: комплексная...

Внешняя печатная форма Акта передачи прав
Здравствуйте. Есть внешняя печатная форма Акта передачи прав для документа &quot;Реализация товаров и...

Печатная форма в ексель
Такая проблема, при &quot;Сохранить Как...&quot; в формате ячейки екселя дата не записывается в ексель...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru