На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:

  • Перед тем, как задать вопрос, желательно почитать документацию и воспользоваться поиском.
  • Когда задаёте вопрос, то обязательно указывайте платформу (7.7, 8.0, 8.1, 8.2, etc), причем желательно в заголовке. Если речь идёт о типовой конфигурации, то указывайте её название и релиз. Текущие версии можно посмотреть здесь.
  • Ещё раз напоминаем о необходимости соблюдать не только правила, но и законы. Уважайте авторские права.

Высказать своё мнение о модераторах раздела можно здесь: evGenius
Страницы: (3) 1 [2] 3  все  ( Перейти к последнему сообщению )  
> Что-то вроде bug report
    Вот какую ошибку наблюдаю я.
    Офис работает в 1С на Win ХР домен с сервером для хранения, все как надо.
    Но у каждого несколько раз в день 1С вылетает сам по себе, не выдавая
    никаких ошибок и предупреждений.
      Суть глюка: Говорят, при добавлении в общие реквизиты документов строкового, с неограниченной длиной, происходит смертельный падёж 1С, если она пасётся на SQL2000 сервере.
      Кто-нить этот глюк исследовал? Бо у меня нет такого SQL2000 (есть 7.0 SP2, но на нём - всё тип-топ!)
      Начало темы здесь
        Есть ситуация:
        в форме журнала есть кнопка, по которой я создаю (автоматом) несколько новых документов (так же принадлежащих этому журналу)
        Код следующий:
        ExpandedWrap disabled
                  Док = СоздатьОбъект("Документ");
                  Для Инд = 1 по СписокМеток.РазмерСписка() Цикл
                      Док = СписокМеток.ПолучитьЗначение(Инд);
                      Состояние("Копирование... "+Инд+"/"+СписокМеток.РазмерСписка()+" "+Док);
                      Вид = Док.Вид();
                      Копия = СоздатьОбъект("Документ."+Вид);
                      Копия.Новый();
                      МетаДок = Метаданные.Документ(Вид);
                      Для ИндМ = 1 по МетаДок.РеквизитШапки() Цикл // Копирование шапки
                          Ид = МетаДок.РеквизитШапки(ИндМ);
                          Знч = Док.ПолучитьАтрибут(Ид);
                          Копия.УстановитьАтрибут(Ид,Знч);
                      КонецЦикла;
                      Для ИндТЧ = 1 по Док.КоличествоСтрок() Цикл
                          Копия.НоваяСтрока();
                          Для ИндМ = 1 по МетаДок.РеквизитТабличнойЧасти() Цикл // Копирование ТЧ
                              Ид = МетаДок.РеквизитТабличнойЧасти(ИндМ);
                              Знч = Док.ПолучитьАтрибут(Ид);
                              Копия.УстановитьАтрибут(Ид,Знч);
                          КонецЦикла;
                      КонецЦикла;
                      Копия.Записать();
                  КонецЦикла;
                  // копирование
                  СписокМеток.УдалитьВсе();
                  ОткрытьФорму("Журнал.ПлатежныеДокументы.ФормаСписка");

        СписокМеток - СЗ, в который заранее накиданы документы.
        Так вот, без последнего "ОткрытьФорму" в списке остается видимым только последний документ в верхней строчке.
        Сообщение отредактировано: Волченка -
          Цитата Волченка @
          в форме журнала есть кнопка...

          Imho, намудрила слегка..
          А вот так пробовала?
          ExpandedWrap disabled
                    
                    Для Инд = 1 по СписокМеток.РазмерСписка() Цикл
                        Док = СоздатьОбъект("Документ");
                        Док.НайтиДокумент(СписокМеток.ПолучитьЗначение(Инд)); //тут
                        Состояние("Копирование... "+Инд+"/"+СписокМеток.РазмерСписка()+" "+Док);
                        Вид = Док.Вид();
                        Копия = СоздатьОбъект("Документ."+Вид);
                        Копия.Новый();
                        МетаДок = Метаданные.Документ(Вид);
                        Для ИндМ = 1 по МетаДок.РеквизитШапки() Цикл // Копирование шапки
                            Ид = МетаДок.РеквизитШапки(ИндМ);
                            Знч = Док.ПолучитьАтрибут(Ид);
                            Копия.УстановитьАтрибут(Ид,Знч);
                        КонецЦикла;
                        //Тут много проще.. ;)
                        Т=СоздатьОбъект("ТаблицаЗначений");
                        Док.ВыгрузитьТабличнуюЧасть(Т);
                        Копия.ЗагрузитьТабличнуюЧасть(Т);
                        Копия.Записать();
                    КонецЦикла;
                    // копирование
                    СписокМеток.УдалитьВсе();
                    //ОткрытьФорму("Журнал.ПлатежныеДокументы.ФормаСписка");
          Сообщение отредактировано: Mechanic -
            Есть такой глюк.

            Microsoft радостно шагает навстречу будущему, будь оно неладно, и не очень понятными способами отказывается от обратной совместимости с программами для Win3.1, MS-DOS и проч. Так вот, это не совсем радостное событие, потому как замечено, что инсталлятор 1С-ки 7.7 сделан под Win3.1 или же Win32s.

            Как результат -- нецензурные ругательства оного инсталлятора на кривость винды в части 16-битной подсистемы.

            Но это можно побороть. Причина в том, что инсталлятор требует правильных config.nt и autoexec.nt.

            В моем случае спасло такое:

            config.nt
            Цитата
            files=40
            dos=high,umb
            device=%SystemRoot%\system32\himem.sys

            (Еще там был взвяк по поводу HASPDOS.SYS, но установщик хасповых дров должен его сам вставить -- не будем ему мешать)

            autoexec.nt
            Цитата
            @echo off
            set PATH=c:\windows\system32
            lh dosx.exe


            Оба файла должны лежать в %SystemRoot%\system32.

            Установка должна заработать, как часики. Для работы самой 1С эти пляски по большому счету не нужны. Хотя, впрочем, фиг их знает -- работает, ну и ладненько. Кто желает, может сделать эксперимент.

            Для особо любопытных: когда установщик ругается на непригодность для запуска autoexec.nt и/или config.nt, это не значит, что они таки непригодны, скорее всего, их совсем нет.

            Когда говорится, что DOSX.EXE должен наличествовать в Autoexec.nt, а также путь к нему -- быть прописанным в %PATH%, то это должно быть сделано. Оба пункта. Просто прописать PATH не получится. Просто запустить DOSX, судя по всему, тоже нет.
              v7.7

              Задача:
              необходимо сформировать список значений, элементами которого являются списки значений.
              (мне понадобилось для красивого древовидного выбора FormEx'ом).

              Пишем код:

              ExpandedWrap disabled
                СЗ = СоздатьОбъект("СписокЗначений");
                СЗ1 = СоздатьОбъект("СписокЗначений");
                //здесь - выборка бух. итогов по счету...
                БИ.ВыбратьСубконто(1);
                Пока БИ.ПолучитьСубконто(1)=1 Цикл
                    Состояние("Обсчет... "+БИ.Субконто(1)+" / "+СЗ.РазмерСписка());
                    
                    БИ.ВыбратьСубконто(2);
                    Пока БИ.ПолучитьСубконто(2)=1 Цикл
                        СЗ1.УдалтьВсе();
                        СЗ1.ДобавитьЗначение(БИ.Субконто(1),"Товар "+БИ.Субконто(1));
                        СЗ1.ДобавитьЗначение(БИ.Субконто(2),"Склад "+БИ.Субконто(2));
                        СЗ1.ДобавитьЗначение(БИ.СКД("К"),"Остаток: "+БИ.СКД("К")+"шт. "+ЧислоВОтчет(БИ.СКД("С"))+"руб.");
                        СЗ1.ДобавитьЗначение(БИ.Субконто(1).Код,"Код: "+БИ.Субконто(1).Код);
                        СЗ1.ДобавитьЗначение(БИ.Субконто(1).Артикул,"Артикул: "+СокрЛП(БИ.Субконто(1).Артикул));
                 
                        СЗ.ДобавитьЗначение(СЗ1,
                   "#"+Формат(БИ.Субконто(1).Код,"С7")+" "+СокрЛП(БИ.Субконто(2))+": "+БИ.СКД("К")+"шт. "+ЧислоВОтчет(БИ.СКД("С"))+"руб."
                        );
                    КонецЦикла;
                КонецЦикла;


              Все вроде красиво, но на выходе во всех вложенных списках - только последняя запись.

              Решается так:
              ExpandedWrap disabled
                ТЗ1 = СоздатьОбъект("ТаблицаЗначений");
                ТЗ1.НоваяКолонка("К","СписокЗначений");
                            
                БИ.ВыбратьСубконто(1);
                Пока БИ.ПолучитьСубконто(1)=1 Цикл
                    Состояние("Обсчет... "+БИ.Субконто(1)+" / "+СЗ.РазмерСписка());
                            
                    БИ.ВыбратьСубконто(2);
                    Пока БИ.ПолучитьСубконто(2)=1 Цикл
                        ТЗ1.НоваяСтрока();
                        ТЗ1.К = СоздатьОбъект("СписокЗначений");
                                    
                        ТЗ1.К.ДобавитьЗначение(БИ.Субконто(1),"Товар "+БИ.Субконто(1));
                        ТЗ1.К.ДобавитьЗначение(БИ.Субконто(2),"Склад "+БИ.Субконто(2));
                        ТЗ1.К.ДобавитьЗначение(БИ.СКД("К"),"Остаток: "+БИ.СКД("К")+"шт. "+ЧислоВОтчет(БИ.СКД("С"))+"руб.");
                        ТЗ1.К.ДобавитьЗначение(БИ.Субконто(1).Код,"Код: "+БИ.Субконто(1).Код);
                        ТЗ1.К.ДобавитьЗначение(БИ.Субконто(1).Артикул,"Артикул: "+СокрЛП(БИ.Субконто(1).Артикул));
                                    
                        СЗ.ДобавитьЗначение(ТЗ1.К,
                   "#"+Формат(БИ.Субконто(1).Код,"С7")+" "+СокрЛП(БИ.Субконто(2))+": "+БИ.СКД("К")+"шт. "+ЧислоВОтчет(БИ.СКД("С"))+"руб."
                        );
                    КонецЦикла;
                КонецЦикла;


              т.е. вложенные списки заносим в ТЗ.
              Извращение, но работает.

              Почему не работает вариант 1 - неизвестно.
                Цитата Волченка @
                Все вроде красиво, но на выходе во всех вложенных списках - только последняя запись.

                Волченка, на самом деле ничего тут дивного нет. Просто при добавлении СЗ1 в СЗ мы добавляем линк, то есть указатель, а сам список один единственный, и мы его каждый раз чистим. Потому остаётся только последний вариант списка.
                Лечится просто: каждый раз создаём новый СЗ1.

                ExpandedWrap disabled
                  СЗ = СоздатьОбъект("СписокЗначений");
                  //здесь - выборка бух. итогов по счету...
                  БИ.ВыбратьСубконто(1);
                  Пока БИ.ПолучитьСубконто(1)=1 Цикл
                      БИ.ВыбратьСубконто(2);
                      Пока БИ.ПолучитьСубконто(2)=1 Цикл
                          СЗ1 = СоздатьОбъект("СписокЗначений"); //вот тут создаём n-й список
                          //СЗ1.УдалтьВсе(); //это немного не то, что нужно
                          СЗ1.ДобавитьЗначение(...);
                          СЗ1.ДобавитьЗначение(...);
                          СЗ.ДобавитьЗначение(СЗ1,..);
                      КонецЦикла;
                  КонецЦикла;
                  Хм, бага, однако!
                  1С V7.7.025
                  Пишу у реквизита с текстовым типом маску "NN.NN/NN.N.NNN". Теперь при вводе, скажем, "58. /20.1.20 " после потери фокуса в поле остается лишь "58. / 0.1.20 ". Лажа, блин. >:( Ладно хоть внутреннее представление вроде как нормальным осталось, только визуально такая ...
                    Цитата evGenius @
                    Хм, бага, однако!
                    1С V7.7.025


                    Гы. 1С V7.70.021 рулит ;) Там такого бага нет. Проверил.
                      Цитата Mechanic @
                      Гы. 1С V7.70.021 рулит ;) Там такого бага нет. Проверил.

                      Зато в вертикальном направлении текста в ячейке таблицы не рулит.
                        Цитата evGenius, 19.01.2006, 12:35:21, 989015
                        Теперь при вводе, скажем, "58. /20.1.20 " после потери фокуса в поле остается лишь "58. / 0.1.20 "
                        Не после потери фокуса. :no: - При выполнении формулы, назначеной контролу. Исчезает следующие символы после пропущеных.
                        Попробуй написать: "58.20/ .1.20"
                          Цитата Nadz Goldman @
                          а он мне еррор выдает и драйвер не ставит.
                          Все это в ВинХР СП2

                          Это не глюк 1С, это что то с виндой. У меня тоже не ставится драйвер ключа защиты, только не от 1С.
                          Пишет что еррор, невозможно создать виртуал драйв. Как вылечить не знаю.... <_<
                            Цитата Jureth @
                            При выполнении формулы, назначеной контролу. Исчезает следующие символы после пропущеных.

                            Формула не задана.
                              Цитата evGenius, 23.01.2006, 10:53:46, 993372
                              Формула не задана.
                              Хмм. <_< У меня если контрол без формулы, то ничего не происходит.
                                7.7 SQL
                                Допустим, есть справочник с автонумерацией и код у него текстовый, код последнего созданного элемента справочника заканчивается на одноразрядное число. Теперь если создать, не записывая, 10 элементов этого справочника, то 1С зависнет намертво, после этого при попытке создать элемент этого справочника в другой копии та копия тоже зависнет. До верификации структуры таблиц. У меня такие незаписанные элементы создавались в обработке.
                                Если последний созданный элемент заканчивается на двухразрядное число, то проблема обнаружится при создании 100 не записанных элементов и т.д. Глюк связан с автонумерацией, точнее с временным хранением новых присвоенных номеров в SQL-таблице _1SDNLOCK, касается также и документов, но они обычно заканчиваются многоразрядным числом, так что это не так актуально.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 [2] 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0443 ]   [ 15 queries used ]   [ Generated: 8.11.24, 21:48 GMT ]