Имя: Пароль:
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, чтобы это поле было активным по умолчанию, но это "очень нехорошо".
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн