Имя: Пароль:
1C
1C 7.7
v7: Кусок кода обработки стандартной свертки. Мне кажется есть ошибка
0 never_sleep
 
13.05.13
14:28
Большое горе вынудило разбираться в коде стандартной свертки базы. Углубился пока недалеко. Но наткнулся на, как мне кажется неработающий (или правильнее сказать неправильно работающий) кусок кода.
(Сразу скажу я что в 1С новичок возможно задам глупый вопрос)

Процедура ПодготовкаСпискаСсылок(СсылкиНаДокументы)

   Перем КритичныеЭлементы;

   СсылкиНаДокументы.УдалитьСтроки();

   // Цикл просмотра "КОНСТАНТ"
   
   Для т = 1 По Метаданные.Константа() Цикл

       Состояние("Контроль ссылок: "+" анализ константы "+Метаданные.Константа(т).Идентификатор);

       Если Метаданные.Константа(т).Тип = "Документ" Тогда
           
           ИдКонст = Метаданные.Константа(т).Идентификатор;
           
           Если Метаданные.Константа(т).Периодический = 1 Тогда
               ЗначКонст = СоздатьОбъект("Периодический");
               ЗначКонст.ВыбратьЗначения();  
                               ****** Вот здесь как мне кажется было пропущен ЗначКонст.ИспользоватьОбъект(Метаданные.Константа(т));
                               ****** А её нет. И как тогда дальше открывается выборка в ЗначКонст ???
               Пока ЗначКонст.ПолучитьЗначение() = 1 Цикл
                   Если (ЗначКонст.Значение.Выбран() = 1)
                      и (ЗначКонст.Значение.ДатаДок <= ДатаСвертки) Тогда

                         // дополняем таблицу ссылок

                       СсылкиНаДокументы.НоваяСтрока();
                       СсылкиНаДокументы.ДокументИБ = ЗначКонст.Значение.ТекущийДокумент();
                       СсылкиНаДокументы.ОбъектИБ   = "Константа";
                       СсылкиНаДокументы.Атрибут    = ИдКонст;
                   КонецЕсли;
               КонецЦикла;
           Иначе
               Если (Константа.ПолучитьАтрибут(ИдКонст).Выбран() = 1)
                  и (Константа.ПолучитьАтрибут(ИдКонст).ДатаДок <= ДатаСвертки) Тогда

                     // дополняем таблицу ссылок

                   СсылкиНаДокументы.НоваяСтрока();
                   СсылкиНаДокументы.ДокументИБ = Константа.ПолучитьАтрибут(ИдКонст).ТекущийДокумент();
                   СсылкиНаДокументы.ОбъектИБ   = "Константа";
                   СсылкиНаДокументы.Атрибут    = ИдКонст;
               КонецЕсли;
           КонецЕсли;
           
       КонецЕсли;
   КонецЦикла;    // Цикл просмотра "КОНСТАНТ"
1 never_sleep
 
13.05.13
14:30
Кривовато вышло... Можно ли отредактировать уже введенное сообщение?
2 shuhard
 
13.05.13
14:31
(0) свёртка на ИТС 1500% рабочая
3 never_sleep
 
13.05.13
14:51
(2) да я то и не спорю. но вот как она в этом месте работает ума своего не приложу. а так как мой ум касательно 1С пока короток, то и спрашиваю здесь помощи разобраться, почему же все гут.
4 Ёпрст
 
гуру
13.05.13
14:56
(3) никак не работает. В типовых конфах нет периодических констант с типом документ только и всего лишь.
5 never_sleep
 
13.05.13
14:57
Я вот что подумал. Хз как в других базах, но в нашей вроде как констант типа документ нет. Я не знаю почему, мне кажется что их вообще таких по свету мало. Поэтому и прокатывает эта приблуда.
6 never_sleep
 
13.05.13
14:57
(4) опередил.
7 never_sleep
 
15.05.13
07:25
ну так значит я правильно тут заподозрил не ладное - этот кусок получается нерабочий? Успокойте, пожалуйста, мою душеньку.
8 Ganiev
 
15.05.13
07:56
(4)++
(7)+
9 ЧеловекДуши
 
15.05.13
08:27
(7) Забей, все там нормально. Даже по коду :)
Программист всегда исправляет последнюю ошибку.