Вход | Регистрация
    1  2   
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Добавил пару методов в FormEx

v7: Добавил пару методов в FormEx
Я
   АЛьФ
 
18.11.20 - 12:10
Понадобилось тут для работы добавить пару методов.

КопироватьОбластьТаблицы(<ТаблицаИсточник>,<СтрокаНачальная>,<КолонкаНачальная>,<СтрокаКонечная>,<КолонкаКонечная>,<ТаблицаПриемник>,<СтрокаНачальнаяПриемника>,<КолонкаНачальнаяПриемника>)
Назначение:
Метод для копирования области ячеек из одной таблицы в другую. Копируемые ячейки заменяют содержимое ячеек в таблице-приемнике.
Параметры:
ТаблицаИсточник - объект Таблица, из которого надо скопировать ячейки;
СтркаНачальная,КолонкаНачальная,СтрокаКонечная,КолонкаКонечная - координаты, задающие копируемую область ячеек;
ТаблицаПриемник - объект Таблица, в который надо скопировать ячейки;
СтрокаНачальнаяПриемника,КолонкаНачальнаяПриемника - координаты начальной ячейки области, куда надо поместить копируемые ячейки.

ОткрытьДвиженияОбъекта(<Документ>)
Назначение:
Открывает стандартное окно движений документа по регистрам. Аналогично действию ''Движения документа'' в контекстном меню журнала документов.
Параметры:
<Документ> - документ, движения которого надо показать.

Если кому интересно, сборку 2.0.5.152 качать, как обычно на formex.dorex.pro
   Волшебник
 
1 - 18.11.20 - 12:19
Кладовочка АЛьФа совсем запылилась. Сдул пыль? :)
   АЛьФ
 
2 - 18.11.20 - 12:28
2(1) Чойта вдруг? Я там регулярно прибираюсь.
   Cthulhu
 
3 - 18.11.20 - 12:35
спасибо, Алексей!
   mishaPH
 
Модератор
4 - 18.11.20 - 12:35
слушай. а почему у меня формэкс последний 1.5 мега а твой тек 996864. что в нем так урезали?
   mishaPH
 
Модератор
5 - 18.11.20 - 12:37
   Kigo_Kigo
 
6 - 18.11.20 - 12:39
(4) Ремары почистил :)
   АЛьФ
 
7 - 18.11.20 - 12:43
2(4) Скорее всего, это из-за обновления библиотеки zint.
   mishaPH
 
Модератор
8 - 18.11.20 - 12:45
гм у меня даже есть 2.5.0 1.5 и 500 кб..

ок ориентируюсь на номер версии. а то чтото запутался

(7) ок. заберу протестирую на своих системах. у меня раскраска используется и шрифты активно
   trdm
 
9 - 18.11.20 - 12:54
(0) хелло. А можешь сделать неактивный пункт в динамическом меню как-нить?
Надо иногда всетаки показывать, что возможности есть, но они задизаблены..
   Kigo_Kigo
 
10 - 18.11.20 - 12:54
   trdm
 
11 - 18.11.20 - 12:55
   АЛьФ
 
12 - 18.11.20 - 12:57
2(9) Если про меню с помощью объекта Сервис, то там надо просто поставить пометку на пункт, который недоступен.
   alyuev
 
13 - 18.11.20 - 13:16
По поводу движений объекта я делаю так:

Процедура ОткрытьСистемноеОкно(КодОкна=32854) Экспорт //Получить номер команды можно с помощью метода ПриПолученииКоманды() ВК RWidjets
    //а так же в новом FormEx (120 и выше) появился аналогичный обработчик-перехватчик ПриПолученииКомандыГлавнымОкном и ПриПолученииСистемнойКомандыГлавнымОкном
    //Или с помощью ResHacker.exe в разделе Menu рядом с пунктом идет номер, например MENUITEM "&Интервал",  32881
    //Вот здесь было обсуждение http://1c.alterplast.ru/faq/tlpt_t1c/tlpt_t1c_6.html
    ТекстМодуля = "
    |Public Const WM_COMMAND = &h111
    |Public Sub GetUsersWindow()
    |    Set Wrap = CreateObject(""DynamicWrapperX"")
    |    Wrap.Register ""USER32"", ""GetForegroundWindow"", ""f=s"", ""r=l""
    |    Wrap.Register ""user32"", ""SendMessage""     ,  ""i=hull""    , ""r=l""
    |    Res = Wrap.SendMessage(Wrap.GetForegroundWindow(), WM_COMMAND, "+КодОкна+", 0)
    |End Sub";
    мScrptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl");
    мScrptCtrl.Language = "vbscript";мScrptCtrl.AddCode(ТекстМодуля);
    мScrptCtrl.CodeObject.GetUsersWindow();
КонецПроцедуры

ОткрытьСистемноеОкно(32880); //Открываем движения регистров документа

И по аналогии прочие системные окна, типа списка пользователей, активных юзеров, журнал регистрации и пр.

Но за более удобный способ тоже спасибо.
И еще ж есть ОтправитьКоманду() и ПослатьКоманду(), но ими я еще не пробовал работать.
   Масянька
 
14 - 18.11.20 - 13:24
(0) Как сегодня модно говорить: респект и уважуха!
Молодец!
   tgu82
 
15 - 18.11.20 - 13:30
(0) Ну как всегда круто.
1. Вот только насчет нескольких обработок ожидания глобальных - нет ли возможных нюансов?
2. В локальном контексте обработки внешнего события как-то некорректно работает процедура работы со справочником акций. Вообще в отладчике куда-то идет адресация и не ловится что там внутри
   1Сергей
 
16 - 18.11.20 - 13:34
Кто-то всё-таки вернулся в 2007-ой
   АЛьФ
 
17 - 18.11.20 - 13:51
2(13) Это типа если открыт штатный журнал и надо программно открыть окно движений документа? У меня метод для своего журнала (внешней обработки с табличным полем). Изначально сделал обработку с движениями, но сказано было, что нужен штатный метод показа движений.
2(14) Спасибо.
2(15) В принципе, никаких нюансов с несколькими обработками ожидания нет. Там же под каждую свой объект создается, в котором таймер запускается.
   tgu82
 
18 - 18.11.20 - 13:56
(17) Просто возникает странная ситуация и очень редко. Один юзер долбит по клаве и мыши, проводит документы вообще делает все что хочет как бы, но при этом остальные жестко висят по транзакции а это единственный лупит не туда - вроде в журнале это чек а на поверку заявка покупателя - короче приходится его вырубать и тогда все моут работать а ему приходится все что он набил делать по новой. Благо довольно быстро отлавливаем по ЖР и бывает такео весьма редко
   Cthulhu
 
19 - 18.11.20 - 13:58
если бы еще подменить системный просмотр движений - с сохранением/восстановлением хотя бы ширины колонос (с последнего открытия такого же объекта)... ну и - гулять так гулять - управления видимостью и порядком отображения колонок... и хотя бы самый примитивный отчет по тек.просмотру...
   АЛьФ
 
20 - 18.11.20 - 14:04
2(18) У нас была похожая ситуация. При этом в SQL копится очередь из "fetch_api", насколько я помню. Возникало при частом использовании журналов с отборами, журналов подчиненных и метода ВыбратьПодчиненныеДокументы. Как раз из-за этого и стали писать свой универсальный журнал документов.
2(19) А не подойдет предопределенная ПриПолученииКомандыГлавнымОкном с отловом параметра wParam = 32880?
   tgu82
 
21 - 18.11.20 - 14:10
(20) У меня dbf база. Но спасибо хотя не один я в поле воин )
   Mikeware
 
22 - 18.11.20 - 14:18
(18)(21) да, кстати, два раза натыкался на такое, и именно на дбф (причем на мелкой базенке, ) - но решать не стал, ибо переводил контору на снеговика.
   АЛьФ
 
23 - 18.11.20 - 14:22
   tgu82
 
24 - 18.11.20 - 14:39
(23) Да уж. Вот все-таки почему такое происходит?
   Mikeware
 
25 - 18.11.20 - 14:41
(23) ага! от прям щазз взял, и изошёл! :-)
Но на SQL такого не помню. а на дбф было
   tgu82
 
26 - 18.11.20 - 15:07
(25) А формекс использовал для работы?
   Mikeware
 
27 - 18.11.20 - 15:13
(26) да ,там был стандартный джентльменский набор: 1с++, формекс, вроде еще рвиджет.
   АЛьФ
 
28 - 18.11.20 - 15:48
2(24) Надо отлавливать и собирать статистику что именно запущено у работающего пользователя.
   Злопчинский
 
29 - 19.11.20 - 03:49
(24) кривой код. скорее всего. так как кода у тебя тонна, то где-то неявно отрабатывает криво. и кабздец.
рефакторь код.
ну и хорошобы потестить на базе без постгянных урибобменов.
можно еще на ИС взят трейсер Олега Пономаренко и отслежтвать что где кто веткуи кода работают.
   Злопчинский
 
30 - 19.11.20 - 03:50
(0) спасибо!
 
 Рекламное место пустует
   Злопчинский
 
31 - 19.11.20 - 03:57
(0) а как же снеговик?! ;-)
   tgu82
 
32 - 19.11.20 - 07:10
(29) Да думаю что не так. Кода у меня не тонна своего - старался как-то все в отдельные глобальные процедуры его писать. А так-то ТИС и ТИС. У hogik такое встречалось а он вообще не использовал ничего кроме штатного 1С вроде как. И при чем тут кривой код когда речь идет о том что один юзер как бы работает во вложенных транзакциях чего в 1С 7.7 вообще быть не должно? Хотя я в таких дебрях плохо пока ориентируюсь.
   АЛьФ
 
33 - 19.11.20 - 09:43
2(31) Да как-то не складывается у меня с ним пока.
   Ёпрст
 
34 - 19.11.20 - 10:41
(0) Мот поправишь как-нить, чтоб в ДобавитьАтрибут можно было создать текстовую колонку ?..которая работала бы.
   MWWRuza
 
35 - 19.11.20 - 10:50
(0) Спасибо!
   Кодер
 
36 - 19.11.20 - 10:59
Спасибо, полодец!
   Кодер
 
37 - 19.11.20 - 10:59
Блин. Опечатку поправьте, кто может.

Молодец, Алексей!
   Mikeware
 
38 - 19.11.20 - 11:00
(29) (32) подтверждаю, в той базе, где я наблюдал - была практически типовая комплексная. 1с++/формекс использовался в основном для отчетов (ну и подсистема хранения сканов была добавлена).
   АЛьФ
 
39 - 19.11.20 - 11:25
2(34) Не я делал этот функционал и мне туда даже страшно лезть :(
   trdm
 
40 - 19.11.20 - 11:34
(12) Спасибо, проверил.
   Злопчинский
 
41 - 19.11.20 - 13:15
(33) Здравствуй, бро! ;-)
   Злопчинский
 
42 - 19.11.20 - 13:16
(32) ходжик все расписал про вложенные транзакции.
   DEVIce
 
43 - 19.11.20 - 13:20
А кому это все надо? Верю что на 7.7 сидят еще много, но не верю что в ней что-то развивают на столько, что прям просят какие-то новшества в FormEx.
   Cthulhu
 
44 - 19.11.20 - 13:20
(42): хде?
   Злопчинский
 
45 - 19.11.20 - 13:25
(44) ну блин я человек гнеорганизованный, складываю все, но порядка нет ;-) не найду, у него лучше спрашивать
   Злопчинский
 
46 - 19.11.20 - 13:25
там типа нет никаких вложенных транзакций. есть одна транзакция.
   АЛьФ
 
47 - 19.11.20 - 13:30
2(43) Прикинь! У нас еще и на 1С++ с Rainbow только три года назад перешли.
   DEVIce
 
48 - 19.11.20 - 13:32
(47) Т.е. кто-то с типовой 7.7 перешел на 7.7 + 1С++? Типа оптимизировался? :)
   Mikeware
 
49 - 19.11.20 - 13:33
(47) вы все-таки "сделали это!"
   oslokot
 
50 - 19.11.20 - 13:36
А есть ли примочки сменить унылую мышино-серую семерошную тему на нечто желтовато-ламповое снеговое ?
   АЛьФ
 
51 - 19.11.20 - 13:37
2(48) Т.е. нетиповую 7.7 с прямыми запросами на Rainbow перевели на 1С++.
2(49) Мне понадобилось на это всего 7 (семь) лет.
   АЛьФ
 
52 - 19.11.20 - 13:38
2(50) Нет. Потому что эта унылая серость не семерошная, а майскрософтовскомфцшная. Чтобы ее сменить надо переходить на другие графические библиотеки.
   alyuev
 
53 - 19.11.20 - 13:56
2(50) Вот поднимал как-то тему на этот счет: https://www.1cpp.ru/forum/YaBB.pl?num=1358170494/0
   Cthulhu
 
54 - 19.11.20 - 14:14
(20): а документ для которого вызывается перехвачиваемая операция - тоже где-то в параметре есть? и на каком этапе - на получении списка объектов, в которых могут в ринципе быть движения с галками на тех, в которых фактически они есть? а как эту всю байду вытянуть иначе при перехвате?
ну и - этот перехват сработает для ОткрытьДвиженияОбъекта?.. а документ (хтя бы!) откуда дернуть и как?
   АЛьФ
 
55 - 19.11.20 - 14:49
2(54) Документа нет. Но можно отловить активный контекст и получить текущий документ оттуда.
   Mikeware
 
56 - 19.11.20 - 14:55
(51) я помню, ты описывал вкратце геморрой с инициативой перехода... до сих пор удивлен.
   DEVIce
 
57 - 19.11.20 - 14:59
(51) "7.7 + 1С++ и прямые запросы уделывают 8.х как Бог черепаху" Садовников О. (с) :)
   АЛьФ
 
58 - 19.11.20 - 15:07
2(57) И это так. У нас часть процессов в восьмерке реализовано. Функционала чуть, пользователей с гулькин нос, ресурсов отъедает немеряно и все время тормозит. Семерка с основным функционалом с моей точки зрения летает. Хотя пользователи, конечно, недовольны периодически.
   Mikeware
 
59 - 19.11.20 - 15:09
(57) и он прав, чьорт подьери!
   DEVIce
 
60 - 19.11.20 - 15:14
(58) "пользователей с гулькин нос" - это сколько? У меня ERP на 150 активных пользователей и до 300 в пике не тормозила на PG (не сразу правда :)).
 
 Рекламное место пустует
   АЛьФ
 
61 - 19.11.20 - 15:19
2(60) Меньше 20. А в бухгалтерии типовой не больше четырех одновременно.
   palpetrovich
 
62 - 19.11.20 - 15:44
(0) спасибо!
   Araekend
 
63 - 19.11.20 - 15:53
ветка как машина времени в теплый ламповый 1С 15-летней давности ) Спасибо, кайфанул!
   АЛьФ
 
64 - 19.11.20 - 15:54
2(63) Да уж. FormEx  в этом году отметил совершеннолетие...
   Холст
 
65 - 19.11.20 - 16:34
Напомните, технически, платформа 1С 7.7 работает до 2027 года или какого ? Что делать будем (сидящие на 7.7) ?
   ДенисЧ
 
66 - 19.11.20 - 16:38
(65) А чего она упасть должна?
   trdm
 
67 - 19.11.20 - 16:40
(65) до 3027
   Холст
 
68 - 19.11.20 - 16:41
(66) Поставь в винде, например 2040год и попробуй запусти 1С 7.7 ... а может и 2030год не осилит, запамятовал
(67) хмм... вроде было 20ХХ - какой-то
   Sserj
 
69 - 19.11.20 - 16:43
(68) DBF не осилит, потому как юникстайм. SQL отлично работает, проверял.
   Холст
 
70 - 19.11.20 - 16:45
2037 год не работает запуск экзешника 27 релиза проверил
   Sserj
 
71 - 19.11.20 - 16:55
(70) Ну это только при запуске. Если открыть и во время работы поменять дату, то все нормально, документы записываются и проводятся. Может кто через десяток лет еще захочет взять отладчик в руки и найти где эту проверку вырезать :)
   ДенисЧ
 
72 - 19.11.20 - 16:56
(70) А что говорит?
   АЛьФ
 
73 - 19.11.20 - 17:13
2(70) Это как это? Первый раз о таком слышу.
   АЛьФ
 
74 - 19.11.20 - 17:17
Ха! Круто! Век живи, век учись. Дураком помрешь.
   АЛьФ
 
75 - 19.11.20 - 17:19
Во мне сюрприз бы был за три года до пенсии...
   АЛьФ
 
76 - 19.11.20 - 17:28
"Система 1С:Предприятие не может работать корректно, если значение года установленной на компьютере системной даты больше чем 2037."
Хорошо, что патчится легко.
   victuan1
 
77 - 20.11.20 - 06:09
   victuan1
 
78 - 20.11.20 - 06:09
(0) Вот еще бы сделать, чтобы попытка загрузки Формекс не роняла 1С.
Есть у меня пара-тройка клиентов, у которых при попытке ЗагрзуитьВнешннююКомпоненту("formex.dll") 1С просто падает.
Думаю, проблема в окружении - но устранить ее без переустановки ОС вряд ли смогу.

Могу сделать базу-пустышку на клиенте, чтобы продемонстрировать проблему через удаленку на ПК клиента. Если конечно есть интерес в этом ковыряться.

1с++ и другие ВК при этом грузятся без проблем.
   АЛьФ
 
79 - 20.11.20 - 08:38
2(78) Глядеть через удаленку смысла нет. Для начала неплохо бы найти в виндовом логе что там пишется по поводу падения. Если стабильно на любой базе валится, то могу попробовать сделать сборку с логом, чтобы понять на каком шаге загрузки вылетает.
   vis_tmp
 
80 - 20.11.20 - 09:02
(76) А из-за чего?
   Кодер
 
81 - 20.11.20 - 09:56
(76) Это отличная от https://ru.wikipedia.org/wiki/Проблема_2038_года ошибка?
   АЛьФ
 
82 - 20.11.20 - 10:28
2(80) Что из-за чего? Просто при запуске 1С стоит вот такая проверка. Можно пропатчить, установив год намного больше и дальше будет работать.
2(81) Скорее все та самая. В (69) уже указано на это.
   big
 
83 - 20.11.20 - 13:55
(78) Не занудства ради, а истины для - 1с++ правильной версии загружается, без встроенного FormEx?
   Djelf
 
84 - 20.11.20 - 14:00
(81) Как раз она и есть, причем 1С об это проблеме знала! https://gyazo.com/5eb545e5fb0236412b71e39dd3cddf41
(82) ИМХО Патчить придется не только сам запуск... И начинать стоит уже сейчас ;)
   АЛьФ
 
85 - 20.11.20 - 14:25
2(84) Да, почитав подробней про эту проблему понял, что это будет все же год смерти 7.7. Жаль.
   Djelf
 
86 - 20.11.20 - 14:46
(85) Не факт! В принципе можно вклинится в CDate и прибавлять/вычитать из unixtime ~20 лет. Должно сработать!
   Злопчинский
 
87 - 20.11.20 - 15:01
(78) Подтверждаю, есть такая проблема. у меня тоже проявляется.
   tgu82
 
88 - 20.11.20 - 15:13
Да, при всех плюсах не мало и минусов. Патчить чего-то мудрить - я себе напоминаю человека у которого рядом ну скажеи Рено а он копается с велосипедом "школьник" и пытается сделать его комфортным и почти такимм же быстрым как авто. Теоретически такое наверное даже возможно ). Многие очень многие еще работают на 7.7 особенно в ТИС. В том числе и на ДБФ. Я думаю так - просто нет привычки познавать проектно и целостно. Все-таки 7.7. я познавал еще даже что-то старое на фоксе 2.6 поддерживая. Или это была 7.5. Где-то что-то читанул и бац - магазинчик игрушек автоматизировал. Или центральный рынок с арендополучателями на своей нетленке на бух. счетах но с пробитием чеков оплаты за аренду. Но опять же на основе знаний - справочник, докмуент, бух. счет, проводки, что-то про кассу АМС - ну и дальше варил из них кашу. И в этой своей ТИС - отбрасывая все - что-то делалось просто потом на терминальном сервере, потом вдруг несколкьо узлов УРБД стало - узнал про УРБД где-то. "Ну а потом вдруг бац - и вторая смена )". То есть оказывается еще надо чтоб в сети все хорошо работало и т.д. и т.п.
8-ка предполагает дял меян совершенно иной подход - сформулировал, спланировал, сделал. Просто все же рабочее боевое, игратсья как бы вживую не приходится. Ну делал я что-то когда-то в режиме кусочном. Так это был период когда это что-то только начинало запускаться с ошибками проблемками которые по  ходу решал. И даже если не работало сразу - ничего страшного не было. Была некая раскачка
   Злопчинский
 
89 - 20.11.20 - 15:18
(88) "сформулировал, спланировал, сделал."
- это подразумевает что к 8-ке должен прилагаться кто 1. формулирует 2. планирует 3. делает.
;-) 3 брата из ларца... фузинаторы, мля...
   Djelf
 
90 - 20.11.20 - 15:37
(88) Минус только один - скд!
Сделал что-то похожее на 7.7, но это не скд: https://gyazo.com/cd7ee9e22850318315e5772c724c0df8
Ну и фоновые задания, особенно если они с обменом с внешним ресурсом.
Пока терпят ожидание по кнопке "Обновить".
Когда СИЛЬНО затюкают, придется на GO сделать фоновое в системе и с базой на sqlite...
   trdm
 
91 - 20.11.20 - 15:54
(70) 2038 год. 1С не запускается, SQL версия.
https://prnt.sc/vmtns6
   Злопчинский
 
92 - 20.11.20 - 16:19
(90) я вот хз.. может у когото скорость порожденяи отчетов такая что капец.
у меня пока получается практически просто.
заказан отчет кем-то (продаванами итд). Собираю плоскую таблицу и подсовываю в "Универсальный отчет по ТЗ" - там и группирвоки есть, и шахматку можно сделать (без программирования). Этого обычно хватает. Прикрутил внутрь "УниТЗ" авторасчет относительных показателей, передается параметром название колонки относительных показателей, чтобы группирвока не нассуммировала 100500%...
.
в большинстве случаев хватает.
если что-то извращенное - сначала вчерновую на УНИТЗ обкатываю, потом уже пишу частный отчет.
   АЛьФ
 
93 - 20.11.20 - 16:48
Поправил небольшой глючок: при выходе из 1С, если загружен FormEx, не сохранялись размеры и положение главного окна Предприятия.
   Volodja
 
94 - 20.11.20 - 17:01
(0) Спасибо.
Мне этот метод нужен был лет 10 назад. Хотел вроде сделать одну общую таблицу для вывода членов комиссии, а потом ее подставлять в другие.
А можешь еще добавить метод УдалитьСтроки(_С,_По) для Таблицы ?
Чтобы при обновлении не перерисовывать всю таблицу.
Когда таблица на экране можно интерактивно удалить несколько строк.А можно это сделать программно?
   Злопчинский
 
95 - 20.11.20 - 18:36
А что будет если читаем из таблицы например область, а кладем в другую таблицу, где ячейки области-приемника объединены?
   Злопчинский
 
96 - 20.11.20 - 20:07
АЛьФ, сделай, плиз, допилку
ПолучитьGUID(Режим)
где
Режим = 0 - по умолчанию, м.б. опущен (останется совместимость без переписываняи кода), гуид возвращается СО скобками {}
Режим <> 0 - ГУИД возвращается без скобок
   Холст
 
97 - 20.11.20 - 20:15
(91) Помоему (70) имел ввиду, что экзешник временно запускаем датой меньше 2037, а потом обычную работу ведём реальной датой
   ТочноеЯдро
 
98 - 20.11.20 - 22:23
(0) Спасибо!
(18) Была похожая ситуация несколько раз только без транзакции. Юзер наколотил много разных документов, которые он в своей сессии видел. После выхода всё исчезло. Если бы не записи в журнале регистрации никаких следов. Т.е. его документы по факту не долетали до 1SJourn.dbf. Из-за этого другой юзер создавал свой документ с таким же ИД и после этого в журнале регистрации две записи по одному ИД: 1 запись о ПН (например) от первого юзера, 2 - о БВ от второго. По факту естественно открывается БВ.
(28) Стоят 1СРР, формекс и еще несколько
   Mikeware
 
99 - 23.11.20 - 08:19
(92) "УНИверсальнаяТАблицаЗначений"?
   Масянька
 
100 - 23.11.20 - 08:25
Сотка
  1  2   

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.