Имя: Пароль:
1C
1C 7.7
v7: Формекс и запись константы
,
0 kupec
 
09.01.18
14:31
Есть вот такой простой код
    Константа.SmtpСервер=SmtpСервер;
Который не работает....мучался мучался, в итоге нашел странный для меня глюк, а может и не глюк, если не загружать компоненту формекс, то все работает, а если её загрузить, не создавая даже никаких из неё объектов, то данный метод уже не работает. Подскажите в чем дело? версия формекса 2.0.5.108. Кстати метод через константа.установить тоже не записывает.
1 Злопчинский
 
09.01.18
14:35
1. Сделать полностью пустую конфигурацию и воспроизвести
2 kupec
 
09.01.18
14:44
(1) если база абсолютно пустая то и с формексом работает, в той базе в которой надо после загрузки формекса не работает, перепробовал кучу вариантов
3 Злопчинский
 
09.01.18
14:46
(2) ищи код
4 kupec
 
09.01.18
14:47
(3) а что может блокировать запись?
5 kupec
 
09.01.18
14:51
База не пустая, процедура ПриНачалеРаботыСистемы() пустая, все работает, в данной процедуре пишем ЗагрузитьВнешнююКомпоненту(формекс) и все, константа не пишется, база кстати DBF
6 mehfk
 
09.01.18
14:52
Для эксперимента - грохни _1sconst и проверь еще раз.
7 kupec
 
09.01.18
14:55
(6) буду пробовать, для начала запустил тестирование и исправление.
8 kupec
 
09.01.18
14:57
(6) тестирование и исправление не помогла, а где _1sconst найти?
9 kupec
 
09.01.18
15:00
(6) нашел, не помогло
10 kupec
 
09.01.18
15:06
Скачал последний формекс, не помогает
11 Chieftain
 
09.01.18
15:09
(9) а код точно вызывается? на пустой базе из этого md повторяется?
12 kupec
 
09.01.18
15:14
смысл такой, есть база данных, не пустая, DBF.
Процедура ПриНачалеЗапсукаСистемы()
    ЗагрузкаDialMail();
    ЗагрузкаV7();                                          
    ЗагрузкаFormEx();
    Загрузка1CPP();
КонецПроцедуры
заремариваешь формекс, все сохраняется, разремариваешь не сохраняется. Даже если загрузить только формекс, все равно не то, файл с константами гробил, тестирование делал. НЕ ПОМОГАЕТ, создаю новую базу, загружаю формекс, все сохраняется. Теперь то я понимаю что дело в базе....но вот только где...
13 smitti911
 
09.01.18
15:19
Проверь региональные стандарты базы и системы
14 Злопчинский
 
09.01.18
15:21
1с++ НАДО ГРУЗИТЬ ПЕРВОЙ
15 Злопчинский
 
09.01.18
15:22
В базе с проблемой внешним вьювером просмотри таблицу констант - нет ли у тебя на проблемную константу ДВЕ записи в таблице?
16 Злопчинский
 
09.01.18
15:23
Проверь - работает ли на других константах.
17 Kigo_Kigo
 
09.01.18
15:26
Сделай выгрузку- загрузку базы
18 kupec
 
09.01.18
15:34
(16) первым делом проверял на других константах, тоже НЕ работает
19 Масянька
 
09.01.18
15:37
(0) Тот же Формекс (2.0.0.108) - все работает.
Не соответствие типов.
Что-то есть в коде, где записываешь константы.
Короче, не в формексе дело.
В глобальнике:
    // загружаем 1с++
    Отв = ЗагрузитьВнешнююКомпоненту("1cpp.dll");
    
    Если Отв = 0 Тогда
        Сообщить("Не удалось загрузить компоненту 1cpp.dll.");
    КонецЕсли;

    // загружаем FormEx
    Отв = ЗагрузитьВнешнююКомпоненту("FormEx.dll");
    
    Если Отв = 0 Тогда
        Сообщить("Не удалось загрузить компоненту FormEx.dll.");
    Иначе
        Сервис = СоздатьОбъект("Сервис");
        Сервис.ВключитьРаскраскуТаблиц();
    КонецЕсли;
    
    // загружаем 1sci
    Отв = ЗагрузитьВнешнююКомпоненту("1sci.dll");
    
    Если Отв = 0 Тогда
        Сообщить("Не удалось загрузить компоненту 1sci.dll.");
    КонецЕсли;

    // загружаем TableDoc
    Отв = ЗагрузитьВнешнююКомпоненту("TableDoc.dll");
    
    Если Отв = 0 Тогда
        Сообщить("Не удалось загрузить компоненту TableDoc.dll.");
    КонецЕсли;

    // загружаем mxl_doctor.dll
    Отв = ЗагрузитьВнешнююКомпоненту("mxl_doctor.dll");
    
    Если Отв = 0 Тогда
        Сообщить("Не удалось загрузить компоненту mxl_doctor.dll.");
    КонецЕсли;

    // загружаем SpreadSheet.dll
    Отв = ЗагрузитьВнешнююКомпоненту("SpreadSheet.dll");
    
    Если Отв = 0 Тогда
        Сообщить("Не удалось загрузить компоненту SpreadSheet.dll.");
    КонецЕсли;

    // загружаем RWidjets.dll
    Отв = ЗагрузитьВнешнююКомпоненту("RWidjets.dll");
    
    Если Отв = 0 Тогда
        Сообщить("Не удалось загрузить компоненту RWidjets.dll.");
    КонецЕсли;
20 Масянька
 
09.01.18
15:38
+(19) И - как проверяешь, что константа не записалась?
21 kupec
 
09.01.18
15:43
(20) глазами
22 kupec
 
09.01.18
15:43
загрузка выгрузка базы не помогла
23 mehfk
 
09.01.18
15:49
(21) А ты закрой список констант и снова открой.
24 kupec
 
09.01.18
15:50
(23) капец....серьезно????
25 Масянька
 
09.01.18
15:52
(23) А еще лучше - сохранить константу, выйти (из Предприятия) и снова зайти... Можно очень сильно удивиться...
26 kupec
 
09.01.18
15:55
(25) не работает....сейчас пробовал на той же конфигурации, но на SQL версии.......не работает (((( буду искать проблему, если найду отпишусь
27 Chieftain
 
09.01.18
16:51
(24) тебе, кстати, вполне серьезно сказали в (14) - могут всякие странности вылезать
28 mehfk
 
09.01.18
17:14
(26) А нет у тебя нигде примерно такого кода?

Процедура ПриНачалеРаботыСистемы()

    Попытка
        Сервис = СоздатьОбъект("Сервис");
        Сервис.ОбработкаОжидания("глУстановитьДатуЗапретаРедактирования", 1000);
    Исключение
        
    КонецПопытки;
    
КонецПроцедуры // ПриНачалеРаботыСистемы

//======================================================================
Процедура глУстановитьДатуЗапретаРедактирования()
    Если Константа.ДатаЗапретаРедактирования <> ТекущаяДата() - 1 Тогда
        Константа.ДатаЗапретаРедактирования = ТекущаяДата() - 1;
    КонецЕсли;
КонецПроцедуры // глПроверитьКонстанты
29 Злопчинский
 
09.01.18
18:13
Ставлю 0.5шоколадки что (с учетом того что в пустой базе все ОК) - что работают 1С++ подписки на события. или какой-то другой код (да Винчи)
30 Chieftain
 
10.01.18
08:54
(28)(29) при прямой записи констант, емнип, нет никаких событий
31 kupec
 
10.01.18
09:56
НАШЕЛ.....
в глобальном модуле была процедура
Процедура ПриНачалеБлокировкиОбъекта(Объект)
её заремарил и все ОК
32 kupec
 
10.01.18
09:57
какой то в ней есть код, который все это дело блокирует
33 Масянька
 
10.01.18
09:58
(31) А ты на формекс гнал... Не хорошо, однако...
34 kupec
 
10.01.18
09:59
(33) согласен....
35 Shur1cIT
 
10.01.18
10:00
ОГО я думал мамонты уже все вымерли...
36 kupec
 
10.01.18
10:00
В итоге что же было, в данной процедуре было обращение к константе, из-за этого и ничего не записывалось. Константа не та, для которой производилось изменение
37 Масянька
 
10.01.18
10:04
(35) В природе это большая редкость, но, по счастью, у нас есть. (С) :)
38 Chieftain
 
10.01.18
11:10
(37) На карте много белых пятен, где вы не бываете, а мамонты там в изобилии))
39 Chieftain
 
10.01.18
11:15
(36) Может там запись другой константы есть?
40 Злопчинский
 
10.01.18
11:19
(31) гони полшоколадки!
41 Злопчинский
 
10.01.18
11:20
(33) ну так это и есть формексовская поп-проуедура ;-)
42 Масянька
 
10.01.18
11:34
(41) Не докапывайся.
Дело не в "кривом" формексе, а в кривом использовании инструментов формекса.