Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > 1С: Проблемы и решения > Что-то вроде bug report


Автор: iskander 16.09.03, 12:16
В данной теме предлагается постить инфу о различных глюках и багах в офисных продуктах от 1С.
Для затравки вот здесь http://rom1c.narod.ru/bugs.html изложен bug track для 1С Предприятия 7.7 (Последнее обновление этого списка -- август 2002).

А также кое-что из моего опыта:
1. Глюк с "порядком сортировки". Если в system locales (в винде -- "Языки и Стандарты") стоит не Россия, то при загрузке Предприятия и его надстроек вполне может появиться сообщение "порядок сортировки в системе не соответствует порядку сортировки в базе данных", после чего Предприятие захлопывается. Натолкнулся я на это под 98ой виндой, где стояла в "Языках и Стандартах" Германия.   Лечению не подлежит, только путем смены параметров на русские. Так что если кому принципиально заиметь другие локали -- облом.
2. Уже классический глюк с тем, что Предприятие не видит своего ключа. Лечения: а) деинтсалировать-установить драйвер ключа защиты; или б) инсталлировать Предприятие и прочие 1С-продукты предварительно воткнув оный ключ.

Если кто еще сталкивался с какими глюками, связанными с самой программой (а не со "степенью ее лицензионности" ;) ) -- пишите сюда, возможно это поможет снять многие вопросы еще до того, как они будут заданы.

Автор: BigPig 18.09.03, 07:04
Обнаружен глюк с отображением русских шрифтов в выпадающих меню под Windows XP SP1 eng в 1С Предприятие версии 7.7. Сами меню (Файл, сервис, журналы и т.д) отображаются корректно, а при клике на них выпадающие менюшки выводятся корявками. Ни одна рекомендация общего характера по WinXP для поддержки русских программ не помогла.

Автор: Anonimous 03.10.03, 05:07
По поводу русских шрифтов есть такая проблемма и не тольок в 1с, такая трабла встречается в программах Adobe и некоторых еще было замечено под W2k, в 1с это проявляется примерно так, при копировании таблиц/текста в ехель получаются всякие кракозяблы, исправляется так: в реестре находим ветку
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage
там  находим  параметр  1252 со значением c_1252.nls и меняем его на
c_1251.nls  После  этих  диких  инсинуаций перегружаем комп

Автор: BigPig 03.10.03, 06:35
В моём случае исправление данного ключа реестра ни к чему не привело. Всё осталось по-старому.

Автор: m_fox 01.11.03, 10:58
Есть глюк с циклами:
(синтаксис не 1C, но идея та же)
j=10;
for i=0 to i<j
 j=j-1;
То этот цикл выполнится 10 раз
Комментарий Искандера
Хм, батенька, а чего вы собственно хотели? Изменять значение переменной границ цикла внутри цикла фор... Вещь весьма непредсказуемая... Так что я, честно говоря, скорее бы удивился, если бы оно выполнилось 5 раз, или сколько там ему положено.


Da, a pochemu togda v drugih yazikah (v tom chisle i v kotoryh ludy ne nahodyat glukov - c++, basic, perl) takoe rabotaet, a v 1c, v kotoroy s novoy versiey poyavlautsya vsye bolee i bolee neobyasnimye gluki takoe ne rabotaet.
Naprimer ya delau prosmotr spiska i udalyau nenuzhnye elementy, tak pochemu zhe tsykl ne dolzhen pereschityvatsya?

Автор: sp5 14.01.04, 08:39
Было такое желание - порадовать юзеров:
чтобы, скажем, можно было найти все документы по товару, а потом, щелкнув на ячейке, открыть нужный документ, но не просто так, а подсветить ту строку, где он встретился.
То есть надо открыть форму документа и сделать активной нужную строку документа.
Делаю так:
пДок - некий документ, скажем,

пДок = пСчета.ТекущийДокумент;
пКонтекст = "";
ОткрытьФорму(пДок, пКонтест);
пКонтекст.АктивизироватьСтроку(2);
...
и не работает.
А если сделать
пКонтекст.Активизировать("ДатаДок");
то станет активной дата документа........
в чем дело?

Добавлено в :
Цитата m_fox,1.11.03, 13:58
Есть глюк с циклами:
(синтаксис не 1C, но идея та же)
j=10;
for i=0 to i<j
j=j-1;
То этот цикл выполнится 10 раз

Da, a pochemu togda v drugih yazikah (v tom chisle i v kotoryh ludy ne nahodyat glukov - c++, basic, perl) takoe rabotaet, a v 1c, v kotoroy s novoy versiey poyavlautsya vsye bolee i bolee neobyasnimye gluki takoe ne rabotaet.
Naprimer ya delau prosmotr spiska i udalyau nenuzhnye elementy, tak pochemu zhe tsykl ne dolzhen pereschityvatsya?


по поводу глюка с циклами...
это не глюк.
известно, что в Паскале и 1С верхняя граница цикла вычисляется один раз, при инициализации цикла.
а в С, похоже, условие проверяется после каждого шага

Автор: ZEE 16.02.04, 07:46
Цитата
iskander, 16.09.03, 15:16
1. Глюк с "порядком сортировки". Если в system locales (в винде -- "Языки и Стандарты") стоит не Россия, то при загрузке Предприятия и его надстроек вполне может появиться сообщение "порядок сортировки в системе не соответствует порядку сортировки в базе данных", после чего Предприятие захлопывается. Натолкнулся я на это под 98ой виндой, где стояла в "Языках и Стандартах" Германия. Лечению не подлежит, только путем смены параметров на русские. Так что если кому принципиально заиметь другие локали -- облом.

не совсем облом - в дбф-ной версии (почему-то в скуле нету :blink: ) в конфигураторе есть такой пункт меню "Администрирование\Кодовая страница таблиц ИБ" - там и устанавливается нужная ...

Автор: iskander 22.02.04, 06:45
Твоя не прав. Разве что сами ребята из 1С этого не знают. ;-) У мя прям от них инфа:
Как мне они заявили, что это не лечится, и надо эти самые стандарты менять...

Автор: ZEE 23.02.04, 11:00
Цитата
iskander, 22.02.04, 09:45
Твоя не прав

хм.. но я-то делал так:
у меня в языках и стандартах - русский, а товарисчи из 1С-а (тех поддержка) присылают нам релизы с установленной украинской кодовой страницей - сначала я думал че за х... - не запускается, кричит туже ошибку - но теперь я вумный :) уже знаю что - к чему и сразу меняю кодовую страницу...
Цитата
iskander, 22.02.04, 09:45
Разве что сами ребята из 1С этого не знают. ;-)

:D

но я действительно это делал - если есть дбф-ная версия - попробуй...

Автор: iskander 25.02.04, 02:58
Ну, подозреваю, Украинская и Русская, это да, это трабла. :))))))))
У меня просто Германская стояла...
Правда, у нас еще и SQLная версия...
Рад слышать, что хоть на дбфе оно лечится.

Автор: ZEE 25.02.04, 08:13
Цитата
iskander, 25.02.04, 05:58
Рад слышать, что хоть на дбфе оно лечится

а я не очень рад - т.к. у нас SQL-ная - если ее по тупому проапгрейдить - то она перестанет понимать кодовую страницу и никак это не вылечить
а присылают нам, как я говорил, дбф-ные обновления - вот я их и запускаю переставив сначала кодовую страницу, а потом выдергиваю то что обновилось в нашу SQL-ную... :huh:

Автор: Sphinx2001 02.08.04, 05:56
Цитата BigPig @ 18.09.03, 10:04
Обнаружен глюк с отображением русских шрифтов в выпадающих меню под Windows XP SP1 eng в 1С Предприятие версии 7.7. Сами меню (Файл, сервис, журналы и т.д) отображаются корректно, а при клике на них выпадающие менюшки выводятся корявками. Ни одна рекомендация общего характера по WinXP для поддержки русских программ не помогла.

Сам недавно столкнулся с твоим глюком. Перепробовал добовлять шрифты из других машин, переставлять 1с, безрезультатно. Оказалось все просто.
В панели инструментов-Языки и стандарты поставь язык Русский и все будет телемаркет. Даже комп переобувать не надо.

Автор: Sphinx2001 06.08.04, 01:04
Еще один глюк в 1с, не знаю есть ли он в SQL версии но в ДБФ он существует.
После продолжительной работы с базой через какоето время перестает грузится база. 1с вылетает по рантайм ошибке. Сначала думал что полетели либо структура каких либо дбф или сам мд файл. Оказывается со временем переполняется журнал сислог. Причем невозможно войти не в конфигуратор не в режим пользователя не в монитор пользователь
Лечится очисткай этого журнала. Заходишь в каталог с базой и удаляешь все файлы в папке syslog.

Автор: Волченка 06.12.04, 15:55
Недавно обнаруженный глюк с печатью.
На машине стояла Win98, принтер HP, струйный (не помню точно модели, что-то из новых)
При печати из 1С печатается изображение вдвое больше нормального.

Лечится понижением разрешения печати принтера до 300dpi (у людей сначала было 600)

Автор: NadZ 24.12.04, 02:31
Незнаю глюк ли это или где, но...
Опосля инсталляции 1с:Предприятие тыкаю в " установить драйвер заshitы", а он мне еррор выдает и драйвер не ставит.
Все это в ВинХР СП2

Автор: shik 03.02.05, 19:25
Вот какую ошибку наблюдаю я.
Офис работает в 1С на Win ХР домен с сервером для хранения, все как надо.
Но у каждого несколько раз в день 1С вылетает сам по себе, не выдавая
никаких ошибок и предупреждений.

Автор: Mechanic 16.03.05, 17:58
Суть глюка: Говорят, при добавлении в общие реквизиты документов строкового, с неограниченной длиной, происходит смертельный падёж 1С, если она пасётся на SQL2000 сервере.
Кто-нить этот глюк исследовал? Бо у меня нет такого SQL2000 (есть 7.0 SP2, но на нём - всё тип-топ!)
Начало темы здесь

Автор: Волченка 03.06.05, 11:54
Есть ситуация:
в форме журнала есть кнопка, по которой я создаю (автоматом) несколько новых документов (так же принадлежащих этому журналу)
Код следующий:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
            Док = СоздатьОбъект("Документ");
            Для Инд = 1 по СписокМеток.РазмерСписка() Цикл
                Док = СписокМеток.ПолучитьЗначение(Инд);
                Состояние("Копирование... "+Инд+"/"+СписокМеток.РазмерСписка()+" "+Док);
                Вид = Док.Вид();
                Копия = СоздатьОбъект("Документ."+Вид);
                Копия.Новый();
                МетаДок = Метаданные.Документ(Вид);
                Для ИндМ = 1 по МетаДок.РеквизитШапки() Цикл // Копирование шапки
                    Ид = МетаДок.РеквизитШапки(ИндМ);
                    Знч = Док.ПолучитьАтрибут(Ид);
                    Копия.УстановитьАтрибут(Ид,Знч);
                КонецЦикла;
                Для ИндТЧ = 1 по Док.КоличествоСтрок() Цикл
                    Копия.НоваяСтрока();
                    Для ИндМ = 1 по МетаДок.РеквизитТабличнойЧасти() Цикл // Копирование ТЧ
                        Ид = МетаДок.РеквизитТабличнойЧасти(ИндМ);
                        Знч = Док.ПолучитьАтрибут(Ид);
                        Копия.УстановитьАтрибут(Ид,Знч);
                    КонецЦикла;
                КонецЦикла;
                Копия.Записать();
            КонецЦикла;
            // копирование
            СписокМеток.УдалитьВсе();
            ОткрытьФорму("Журнал.ПлатежныеДокументы.ФормаСписка");

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

Автор: Mechanic 03.06.05, 15:12
Цитата Волченка @
в форме журнала есть кнопка...

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

Автор: Ho Im 30.08.05, 09:42
Есть такой глюк.

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, судя по всему, тоже нет.

Автор: Волченка 26.10.05, 08:41
v7.7

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

Пишем код:

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    СЗ = СоздатьОбъект("СписокЗначений");
    СЗ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))+": "+БИ.СКД("К")+"шт. "+ЧислоВОтчет(БИ.СКД("С"))+"руб."
            );
        КонецЦикла;
    КонецЦикла;


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

Решается так:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    ТЗ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 - неизвестно.

Автор: Mechanic 26.10.05, 12:02
Цитата Волченка @
Все вроде красиво, но на выходе во всех вложенных списках - только последняя запись.

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

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    СЗ = СоздатьОбъект("СписокЗначений");
    //здесь - выборка бух. итогов по счету...
    БИ.ВыбратьСубконто(1);
    Пока БИ.ПолучитьСубконто(1)=1 Цикл
        БИ.ВыбратьСубконто(2);
        Пока БИ.ПолучитьСубконто(2)=1 Цикл
            СЗ1 = СоздатьОбъект("СписокЗначений"); //вот тут создаём n-й список
            //СЗ1.УдалтьВсе(); //это немного не то, что нужно
            СЗ1.ДобавитьЗначение(...);
            СЗ1.ДобавитьЗначение(...);
            СЗ.ДобавитьЗначение(СЗ1,..);
        КонецЦикла;
    КонецЦикла;

Автор: evGenius 19.01.06, 10:35
Хм, бага, однако!
1С V7.7.025
Пишу у реквизита с текстовым типом маску "NN.NN/NN.N.NNN". Теперь при вводе, скажем, "58. /20.1.20 " после потери фокуса в поле остается лишь "58. / 0.1.20 ". Лажа, блин. >:( Ладно хоть внутреннее представление вроде как нормальным осталось, только визуально такая ...

Автор: Mechanic 19.01.06, 22:27
Цитата evGenius @
Хм, бага, однако!
1С V7.7.025


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

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

Зато в вертикальном направлении текста в ячейке таблицы не рулит.

Автор: Jureth 21.01.06, 15:10
Цитата evGenius, 19.01.2006, 12:35:21, 989015
Теперь при вводе, скажем, "58. /20.1.20 " после потери фокуса в поле остается лишь "58. / 0.1.20 "
Не после потери фокуса. :no: - При выполнении формулы, назначеной контролу. Исчезает следующие символы после пропущеных.
Попробуй написать: "58.20/ .1.20"

Автор: Rust 23.01.06, 03:59
Цитата Nadz Goldman @
а он мне еррор выдает и драйвер не ставит.
Все это в ВинХР СП2

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

Автор: evGenius 23.01.06, 08:53
Цитата Jureth @
При выполнении формулы, назначеной контролу. Исчезает следующие символы после пропущеных.

Формула не задана.

Автор: Jureth 23.01.06, 12:16
Цитата evGenius, 23.01.2006, 10:53:46, 993372
Формула не задана.
Хмм. <_< У меня если контрол без формулы, то ничего не происходит.

Автор: evGenius 13.11.06, 04:16
7.7 SQL
Допустим, есть справочник с автонумерацией и код у него текстовый, код последнего созданного элемента справочника заканчивается на одноразрядное число. Теперь если создать, не записывая, 10 элементов этого справочника, то 1С зависнет намертво, после этого при попытке создать элемент этого справочника в другой копии та копия тоже зависнет. До верификации структуры таблиц. У меня такие незаписанные элементы создавались в обработке.
Если последний созданный элемент заканчивается на двухразрядное число, то проблема обнаружится при создании 100 не записанных элементов и т.д. Глюк связан с автонумерацией, точнее с временным хранением новых присвоенных номеров в SQL-таблице _1SDNLOCK, касается также и документов, но они обычно заканчиваются многоразрядным числом, так что это не так актуально.

Автор: Рысь 19.01.07, 17:29
На компе очистили папку "temp". Вручную, просто снеся все что там было. После этого перестала запускаться 1С, причем только под определенным пользователем (который собсна и работал на этом компе). Просто при загрузке, еще до инициализации глобальника выдавала "программа выполнила недопустимую операцию и будет закрыта".

Решилась проблема снесением в реестре ключа с настройками пользователя (/HKCU/Software/1C/1Cv7/7.7/<DBName>/V7/<UserName>)

Автор: RusUdin 09.03.07, 10:26
Сам я так и не понял глюк это или нет, но я был крайне удивлён. Делал я вначале так (объясняю на более простом примере):
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Список1 = СоздатьОбъект("СписокЗначений");
    Список2 = СоздатьОбъект("СписокЗначений");
    Для Н = 1 По 3 Цикл                    
        Список2.УдалитьВсе();
        Для НН = 1 По 3 Цикл
            Список2.ДобавитьЗначение(Н*10+НН);
        КонецЦикла;        
        Список1.ДобавитьЗначение(Список2);
    КонецЦикла;                          
     
    Для Н = 1 По 3 Цикл                            
        СписокСписка = Список1.ПолучитьЗначение(Н);
        Для НН = 1 По 3 Цикл
            Сообщить("Н="+Н+" НН="+НН+" Значение="+СписокСписка.ПолучитьЗначение(НН));
        КонецЦикла;
    КонецЦикла;


а потом врубился в прикол и сделал так:

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Список1 = СоздатьОбъект("СписокЗначений");
    Для Н = 1 По 3 Цикл                    
        Список2 = СоздатьОбъект("СписокЗначений");
        Для НН = 1 По 3 Цикл
            Список2.ДобавитьЗначение(Н*10+НН);
        КонецЦикла;        
        Список1.ДобавитьЗначение(Список2);
    КонецЦикла;                          
     
    Для Н = 1 По 3 Цикл                            
        СписокСписка = Список1.ПолучитьЗначение(Н);
        Для НН = 1 По 3 Цикл
            Сообщить("Н="+Н+" НН="+НН+" Значение="+СписокСписка.ПолучитьЗначение(НН));
        КонецЦикла;
    КонецЦикла;


...И кто-то после этого будет доказывать, что 1С не ООП ?! :)

Автор: evGenius 12.03.07, 04:55
Это не глюк, это фича. А ООП тут не при чем, всего лишь реализация ссылок на переменые агрегатного типа.

Добавлено
ООП в 1С нет, т.к. ты не можешь создавать сам объекты в чистом виде, можешь только использовать встроенные.

Автор: RusUdin 12.03.07, 07:19
Ну ладно придираться к словам, вот, что я ещё накопал 7.7:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    // Запустите эту процедуру у себя и наслаждайтесь.
    Процедура Сформировать()  
        Для НН = 1 По Метаданные.Справочник() Цикл
            Спр = Метаданные.Справочник(НН).Идентификатор;
            Сообщить("Проверка справочника "+Спр);
            С = СоздатьОбъект("Справочник."+Спр);
            С.ВыбратьЭлементы(0);
            Пока С.ПолучитьЭлемент() = 1 Цикл    
                Состояние(С.ТекущийЭлемент());
                Для Н = 1 По Метаданные.Справочник(Спр).Реквизит() Цикл
                    Рек = Метаданные.Справочник(Спр).Реквизит(Н);
                    Р = С.ПолучитьАтрибут(Рек.Идентификатор);
                    Если (ТипЗначенияСтр(Р) = "Справочник") И (ПустоеЗначение(Р) = 0) Тогда
                        Рвнутр1 = ЗначениеВСтрокуВнутр(Р);
                        РС = СоздатьОбъект("Справочник."+Р.Вид());
                        РС.НайтиЭлемент(Р);
                        Рвнутр2 = ЗначениеВСтрокуВнутр(РС.ТекущийЭлемент());
                        Если Рвнутр1 <> Рвнутр2 Тогда
                            Сообщить("В справочнике "+Р.Вид()+" у элемента "+Р+" что-то непонятное с внутр.значением");
                            Сообщить("    У ссылки="""+Рвнутр1+"""");
                            Сообщить("  У элемента="""+Рвнутр2+"""");
                        КонецЕсли;    
                    КонецЕсли;
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
    КонецПроцедуры


А если серьёзно может кто-нибудь ответить почему у некоторых элементов ЗначениеВСтрокуВнутр для ссылки не равно для элемента? (:)) может это фича?)

Автор: evGenius 12.03.07, 08:09
Ну просто иногда почему-то переменная определяется как переменная неопределенного типа, а иногда - определенного.
Про формат возвращаемой строки: тут, тут и тут.

Автор: alevi 20.05.07, 03:13
имена полей в макете не могут содержать буквы cn, dn, и tn где n = число, потому что это особенность платформы 8.0 и имена зарезервированы

Сообщения были разделены в тему "Шрифт для отображения штрих-кода"

Автор: Рысь 04.09.07, 17:12
1C v7.70.024 & 1C++ v2.0.1.2
Создаем пустую форму (т.е. вообще без элементов), пытаемся ее в 1С открыть - не открывается.
Это нормально, об этом ест предупреждение в FAQ по 1С++
Кидаем на форму статитеский текст - все в порядке, форма открывается.

дальше... Добавляем в форму таблицу для ввода данных, режим - "на все окно", в таблицу выводим парочку ячеек с расшифровкой, пытаемся по ним (ячейкам) кликнуть. 1С падает.

дальше... Добавляем на форму кнопку. Не привязываем ее ни к какой процедуре, она там просто висит (она даже не видна - у нас на все окно идет таблица ввода данных). Запускаем, и расшифровка работает, 1С не падает... все чудно

/*сорри за сумбурность, я только на это наткнулась, и нахожусь в состоянии тихого шока...*/

Автор: Рысь 14.11.07, 14:04
1C v7.70.024 & 1C++ v2.5.0.3

Ошибочний код:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     Конт = 0;
     ОткрытьФорму(Док.ТекущийДокумент(),Конт);
     // Тут выполянем с этим контекстом какие-либо действия
     Конт.Записать();
1С выдает ошибку: "Конт.Записать() : Данная команда не может выполняться в форуле элемента диалога"

Решение:
в документе прописываем такую процедуру:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Процедура тЗаписать()
        Записать();
        Провести(); // Это по желанию. Можно дописать еще что-нибудь.
    КонецПроцедуры


И после этого в обработке можно вызывать:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     Конт = 0;
     ОткрытьФорму(Док.ТекущийДокумент(),Конт);
     // Тут выполянем с этим контекстом какие-либо действия
     Конт.тЗаписать();


Для информации: 1С++ позволяет вызывать процедуры и функции контекста. Весьма удобная вещь.

Автор: Pavlovsky 18.11.08, 05:58
1С:Предприятие 7.7 (027)
Только что обнаружил странную фичу платформы. Запускается обработка загрузки выписок банка. Обработка пытается провести, загруженные выписки. Так как в виписках есть ошибки, то формируется отчет "Комментарий проведения". После чего обработка пытается сформировать свой отчет о загруженных документах. Так вот тут возникает проблема - обработка не находит исходную таблицу из текущей формы. И выдает сообщение "Файл Отчет не найден". А вот если отчет "Комментарий проведения" не формируется, то все работает нормально.
Похожая проблема обсуждалась тут http://forum.shelek.ru/index.php/topic,5826.0.html

Не долго думая решил проблему, переносом исходной таблицы из обработки в раздел общих таблиц.

Автор: evGenius 13.01.09, 10:43
7.7.025
Если попробовать засунуть в список значений пустое значение неопределенного типа (именно типа, а не вида), то значение в список не добавится. Наткнулся на эту багу, когда писал процедуру копирования строки таблицы значений:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Процедура КопироватьСтрокуТаблицы(Табл)
        КК = Табл.КоличествоКолонок();
        ТС = Табл.НомерСтроки;
        СписЗначенийКолонок = СоздатьОбъект("СписокЗначений");
        Для Инд = 1 По КК Цикл
            СписЗначенийКолонок.ДобавитьЗначение(Табл.ПолучитьЗначение(ТС,Инд));
        КонецЦикла;
        Табл.НоваяСтрока();
        ТС = Табл.НомерСтроки;
        Для Инд = 1 По КК Цикл
            Табл.УстановитьЗначение(ТС,Инд,СписЗначенийКолонок.ПолучитьЗначение(Инд));
        КонецЦикла;
    КонецПроцедуры

В таблице у одной колонки не задан тип и туда ничего не было записано, т.е. пустое значение неопределенного типа. В результате в список значений добавлялось меньше значений, чем нужно ==> красная ошибка на строке
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Табл.УстановитьЗначение(ТС,Инд,СписЗначенийКолонок.ПолучитьЗначение(Инд));

т.к. значений в списке меньше, чем колонок.

Автор: MiddleFrei 05.03.09, 08:24
7.7.021

При занесении одинакового ряда символьных значений в СписокЗначений и в ТаблицуЗначений различается порядок при сортировке.

В списке получим:
ананас
банан
ПЭРсик

В таблице значений:
ПЭРсик
ананас
банан

Логику можно проследить и там и там, но могли бы уж сделать одинаково! :wall:

Автор: Рысь 12.03.09, 08:53
1C 7.70.27
Реквизит формы справочника "Наименование" (строковый) не может иметь кнопку выбора. Причем в конфигураторе поле ввода рисуется с кнопкой.

Автор: Fellinggood 14.08.09, 12:25
еще один глюк, при создании нового справочника, даже без реквизитов, при открытии его в режиме 1с: Предприятие 7.7, не отображаются реквизиты по умолчанию "Код" и "Наименование"

Автор: evGenius 14.08.09, 19:01
Fellinggood, ты видимо просто в конфигураторе открыл форму списка этого справочника и отказался от автоматического размещения реквизитов. После этого сохранил конфу и получил проблему.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)