Имя: Пароль:
1C
1C 7.7
v7: Печать - фокус в поле "Количество копий"
0 Масянька
 
30.12.13
17:31
С наступающим!!!!

Возможно ли, установить фокус в поле "Количество копий" в окне "Печать" в 7.7?
Если можно - подскажите, пожалуйста, как?
Спасибо.
1 Wobland
 
30.12.13
17:33
думаю, да. необходимо немного переписать соответствующий кусок ОС
2 Масянька
 
30.12.13
17:36
(1) Не-е-е, в ось я не полезу.... А по-другому - никак?
3 Wobland
 
30.12.13
17:36
(2) за диалог печати 1Ска не отвечает
4 Wobland
 
30.12.13
17:37
(3) от наврал же, да? ходи в свойства ТабДокумента
5 Wobland
 
30.12.13
17:38
не, не наврал. фокус в диалоге ОС - это дела диалога ОС
6 Злопчинский
 
30.12.13
20:25
м.б. как-то эмуляцией клавиш или автоИтом..?
7 КонецЦикла
 
30.12.13
20:42
Свою форму показывай
8 Мимохожий Однако
 
30.12.13
20:44
Выводи диалог "Скока копий?!" при нажатии на Печать
9 Злопчинский
 
30.12.13
21:04
А если каким-нить ресуросмейкером типа ресторатора - разобрать соответсвующую ДЛЛ и подправить что надо?
10 Масянька
 
03.01.14
10:00
(8) А как убрать стандартное окно печати тогда (ну, чтобы спрашивало скока копий и печатало)?
(9) Какую ДЛЛ, каким "ресторатором" :(((((
11 пипец
 
03.01.14
11:04
напиши свой диалог печати млина
12 Масянька
 
03.01.14
14:04
А как сделать в семерке кнопку быстрой печати (без диалога)?
13 Mikeware
 
03.01.14
14:10
(12) получи активный контекст, если контекст имеет тип "таблица", то .Напечатать(0)
14 Botanik8888
 
03.01.14
14:10
(12) - не оно?

Напечатать(<?>);
Синтаксис:
Напечатать(<Флаг>)
Назначение:
Напечатать таблицу без предварительного просмотра (печать без открытия окна редактирования).
Параметры:
<Флаг> - необязательный параметр. Режим запроса диалога печати: 1 - запрашивать диалог печати (по умолчанию), 0 - не запрашивать.
Замечание:
Метод может использоваться при работе с таблицей в режиме ввода данных.
15 Mikeware
 
03.01.14
14:10
(14) ей кнопку надо...
16 пипец
 
03.01.14
14:11
(12) хе как это без диалога ? ;)) ну можно и без диалога
ЗЫ если принтер есть по умолчанию
Таб.КоличествоЭкземпляров(<?>)
Таб.Напечатать(<?>);
17 пипец
 
03.01.14
14:13
(16) какая разница то - шо кнопка шо диалог шо чо хочешь хоть на горячую клавишу
18 Botanik8888
 
03.01.14
14:14
(15) - ну как бы мы не знаем что именно нужно ТС,
пусть на кнопку вешает свою процедуру в которой сформирует печатную форму, задаст количество копий, и дальше пользуя Напечатать(0) - свой вывод на печать нужного количества копий...
19 Mikeware
 
03.01.14
14:18
(18) можно на кнопку повесить вызов обработки, к ней получать активный контекст, ну и т.д. по тексту... Одна кнопка для бездиалоговой печати любых таблиц.
20 Масянька
 
03.01.14
14:22
Тяжело после новогодней ночи....

Есть внешняя печ. форма (вызывается по кнопке из док-а).
Хочу: вывести печ. форму на экран и иметь кнопку, кликнув по которой - спросит скока копий и распечатает.
Получается, что:
на панель инструментов нужно воткнуть кнопку с диалогом (типа) кол-ва копий и печати, а во внешней форме убрать -

    Если Устройство = 0 Тогда
        ИсхТабл.Опции(0, 0, 0, 0, "ОпцииПечатиСчета", "ОпцииПечатиСчета");
        ИсхТабл.ПараметрыСтраницы(1,100,,5,5,5,5,,,,,);

        Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда
            ИсхТабл.Защита(1);
        Иначе
            ИсхТабл.Защита(0);
        КонецЕсли;
        ИсхТабл.ТолькоПросмотр(1);

        ИсхТабл.Показать("Счет" + глНомерНаПечать(Докум));  
    Иначе  
        ИсхТабл.ПараметрыСтраницы(,,,,,,,,,1,,);
        ИсхТабл.КоличествоЭкземпляров(КолвоКопий);
        ИсхТабл.Напечатать(0);
    КонецЕсли;
21 пипец
 
03.01.14
14:34
(20) передавай через параметры в приоткрытии во внешку количество копий а потом после Таб.напечатать   ставишь статусвозврата(0) возврат
22 пипец
 
03.01.14
14:36
Процедура ПриОткрытии()
    
    Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
        
        Докум      = Форма.Параметр.Получить("Контекст");
        Устройство = Форма.Параметр.Получить("Устройство");
        КолвоКопий = Форма.Параметр.Получить("КоличествоКопий");
    
        Печать(Докум, Устройство, КолвоКопий);
        Статусвозврата(0);
        Возврат;
    КонецЕсли;
    
КонецПроцедуры // ПриОткрытии()
23 Масянька
 
03.01.14
14:41
Ой, ждала-ждала пока вы меня ткнете носом - сама наваяла:

Процедура ПриОткрытии()
    
    КолВоКопий = 1;
    
    мСервис     = СоздатьОбъект("Сервис");
    РасшФормы     = СоздатьОбъект("РасширениеФормы");
    
    СтатусВозврата(0);

    ИмяФайла = "";
    
    Если (мСервис.АктивныйКонтекст(АктивныйКонтекст) = 1) Тогда
        Если (ТипЗначенияСтр(АктивныйКонтекст) = "Таблица") Тогда
            Если ВвестиЧисло(КолВоКопий,"Задайте количество копий",2,0,60) = 1 Тогда
                ТабДокумент = СоздатьОбъект ("ТабличныйДокумент");
                ТабДокумент.ЗагрузитьИзТаблицы (АктивныйКонтекст);
                ТабДокумент.Напечатать(0);
            КонецЕсли;
        Иначе
            Предупреждение("Нет открытой печатной формы.");
        КонецЕсли;
    Иначе
        Предупреждение("Для начала - откройте печатную форму.");
    КонецЕсли;
    
КонецПроцедуры // ПриОткрытии

Даже работает :)) Тока печатает - 2 шт.
24 Масянька
 
03.01.14
14:42
+(23) Это внешняя форма, которая висит на кнопке, которая (кнопка) сидит в панели инстрУментов :)
25 Масянька
 
03.01.14
14:45
А как получить уже установленные параметры?
26 пипец
 
03.01.14
14:59
ндаааа НГ ночь видать продолжается ... Оо
27 Масянька
 
03.01.14
15:01
(26) А что плохо-то? Все работает :)))

Процедура ПриОткрытии()
    
    КолВоКопий = 1;
    
    мСервис     = СоздатьОбъект("Сервис");
    РасшФормы     = СоздатьОбъект("РасширениеФормы");
    
    СтатусВозврата(0);

    Если (мСервис.АктивныйКонтекст(АктивныйКонтекст) = 1) Тогда
        Если (ТипЗначенияСтр(АктивныйКонтекст) = "Таблица") Тогда
            Если ВвестиЧисло(КолВоКопий,"Задайте количество копий",2,0,60) = 1 Тогда
                АктивныйКонтекст.КоличествоЭкземпляров(КолВоКопий);
                АктивныйКонтекст.Напечатать(0);
            КонецЕсли;
        Иначе
            Предупреждение("Нет открытой печатной формы.");
        КонецЕсли;
    Иначе
        Предупреждение("Для начала - откройте печатную форму.");
    КонецЕсли;
    
КонецПроцедуры // ПриОткрытии
28 Mikeware
 
03.01.14
15:29
(23) собственно, все правильно сделала - как я в (13) и говорил.
что тебе еще получить-то надо?
29 Масянька
 
03.01.14
15:32
(28) Картинку :)))
Да, нет - все, что хотела - есть.
Но (26)-ому не нравится. Интересно, что?
30 Mikeware
 
03.01.14
15:38
(29) видимо, он просто слегка перепил...
31 пипец
 
03.01.14
16:01
вопросы типа / (25) ...
32 Масянька
 
03.01.14
16:03
(31) Ой! На себя посмотри :)))))))))))
Ну, ступила, разок. И чё?
33 Масянька
 
03.01.14
16:04
Пока вы опять наливать не начали, скажите - какого размера иконки в 7.7?
34 Voronve
 
03.01.14
16:05
16x16
35 пипец
 
03.01.14
16:07
(32) да ничо , бывает ;))
ЗЫ на работе не употребляю...
36 Масянька
 
03.01.14
16:11
Всем - СПАСИБО!!!!!

PS Можете наливать и пить :)))))))))))))
37 Mikeware
 
03.01.14
16:17
(36) так какие тебе "уже установленные параметры" нжны были?
38 Масянька
 
03.01.14
16:18
(37) Которые - "ПараметрыСтраницы" :))))
Уже разобралась.
39 Масянька
 
06.01.14
10:09
Ребята, а подскажите мне, пожалуйста, где взять иконку принтера ту, что в стандартной панели лежит?
40 KishMish
 
06.01.14
10:15
(39)
программа ResHacker
ей открывай длл в папке BIN программы 1С
Ищи там

можно просто ПринтСкрин и в паинте вытащить
41 Масянька
 
06.01.14
10:22
(40) А в какой dll лежит стандартная панель?
42 KishMish
 
06.01.14
10:33
(41) не помню, но там перебором быстро находится длл где все иконки
43 Масянька
 
06.01.14
10:37
(42) Не могу найти :(
44 Злопчинский
 
06.01.14
11:05
(34) 15 на 16 а не 16-16
45 KishMish
 
06.01.14
11:09
(43) 1crcrus.dll
Bitmap
128
там полоса
в ней значки
46 KishMish
 
06.01.14
11:11
(43)
+(45)
для редактирования советую програмку Image Edit от фирмы Borland
она даже проще чем паинт и умеет работать с файлами ico и cur - с прозрачным фоном
47 Масянька
 
06.01.14
11:12
(45) Тама нету печати :(
Короче, дядьки, иконку я уже извратилась - сделала. А есть вариант запихнуть ее в стандартную панель?
48 KishMish
 
06.01.14
11:16
(47) http://yadi.sk/d/7h7b_dP7FWzbi
а меня есть
49 Масянька
 
06.01.14
11:22
(48) Меня нагло обманули :))))))
50 Масянька
 
06.01.14
12:20
Так можно добавить свою иконку в стандартную панель, а?
51 Злопчинский
 
06.01.14
17:38
Обязательно в стандартную..?
52 Масянька
 
09.01.14
11:40
(51) Ну, хотелось бы.
53 varelchik
 
09.01.14
13:38
+(46) или restorator
54 Масянька
 
09.01.14
13:57
Чего вы пристали? Я уже сделала иконку.
Мне про стандартную панель интересно...
55 Torquader
 
10.01.14
00:28
Comdlg32.dll диалог DIALOGEX 1538
Дочернее окно Edit3 с идентификатором 1154.
Как бы, перед открытием диалога запускаем программу, которая ждёт открытия диалога (просто перехватив системный вызов CreateWindow через Hook-процедуру), а после открытия диалога просто делает его активным через SetActiveWindow, но сначала нужно сделать AttachThreadInput, чтобы "чужой" поток подключился к очереди сообщений нашей 1С.

Ну, в общем, немного программирования на Си, и чудо свершится.
P.S. можно, конечно пропатчить dll, чтобы это поле было активным по умолчанию, но это "очень нехорошо".