Имя: Пароль:
1C
1C 7.7
v7: Замена наименования в справочнике. Возможно ли сделать?
0 Босечка
 
09.08.11
15:01
Не могу заменить наименование в справочнике. Пишет "Не задан вид!"

СпрМ=СоздатьОбъект("Справочник.МатериальныеКарты");

   СпрМ.ВыбратьЭлементы(0);      
   Пока СпрМ.ПолучитьЭлемент()=1 цикл
       Если СпрМ.ЭтоГруппа()=1 тогда
           Продолжить;
       Конецесли;    
       Сообщить(СпрМ);
   НАимМК=СпрМ.материал.Получить(ТекущаяДата());
   Наим=НАимМК.Наименование;
   СпрМ.Наименование=Наим;
   СпрМ.Записать();
   
       
   Конеццикла;
1 ДенисЧ
 
09.08.11
15:02
на какой строке пишет?
2 salvator
 
09.08.11
15:03
(0) Скорее всего какой-нибудь обязательный реквизит типа "Вид" не указан.
3 Босечка
 
09.08.11
15:03
Когда запускаю обработку.
4 ДенисЧ
 
09.08.11
15:04
А точнее? Когда открываешь? Когда нажимаешь кнопку? Или когда? На какую строку ругань выдаётся?
5 Босечка
 
09.08.11
15:04
(1) При записи.
6 Босечка
 
09.08.11
15:05
(2) Там такого реквизита нет.
7 Босечка
 
09.08.11
15:05
(4) Когда кнопку нажимаю.
8 Сияющий Асинхраль
 
09.08.11
15:06
(2) Вряд ли, в семерке программная запись практически не отслеживается.
9 Сияющий Асинхраль
 
09.08.11
15:07
(7) Кнопку где нажимаешь? В обработке отдельной, или пытаешься записать из формы элемента...
10 Босечка
 
09.08.11
15:07
Может это сделать не возможно. Но ведь вручную делается!!!
11 Попытка1С
 
09.08.11
15:08
(10) Возможно..
12 Босечка
 
09.08.11
15:11
(11) Подскажите, если знаете.
13 Жан Пердежон
 
09.08.11
15:12
вид справочника скорее всего, выборка сбивается
14 Босечка
 
09.08.11
15:14
(13)Может быть. А как его указать? НазначитьТип подойдет?
15 Сияющий Асинхраль
 
09.08.11
15:15
Реквизит "Материал" неопределенного вида что ли?
16 Босечка
 
09.08.11
15:17
(15)Типа "Справочник".
17 Сияющий Асинхраль
 
09.08.11
15:18
Тогда скорее всего выборка натыкается на элемент где поле "Материал" неопределено
18 vip67
 
09.08.11
15:18
а отладчиком воспользоваться религия не позволяет?
19 KRV
 
09.08.11
15:19
(16) определи сперва вид реквизита, потом туда и пиши, что надо
20 Сияющий Асинхраль
 
09.08.11
15:19
Попробуй после определения НАимМК написать
Если ПустоеЗначение(НАимМК) = 1 Тогда
Продолжить;
КонецЕсли;
21 Ёпрст
 
09.08.11
15:20
(17) че ?

(0) в этом коде ошибок нема, за исключением того, что нет проверки на то, что НАимМК выбран, когда наименование из него дёргаешь.

Ошибка в другом месте.
22 Сияющий Асинхраль
 
09.08.11
15:20
Т.е. вот так
СпрМ=СоздатьОбъект("Справочник.МатериальныеКарты");

   СпрМ.ВыбратьЭлементы(0);      
   Пока СпрМ.ПолучитьЭлемент()=1 цикл
       Если СпрМ.ЭтоГруппа()=1 тогда
           Продолжить;
       Конецесли;    
       Сообщить(СпрМ);
   НАимМК=СпрМ.материал.Получить(ТекущаяДата());
Если ПустоеЗначение(НАимМК) = 1 Тогда
Продолжить;
КонецЕсли;
   Наим=НАимМК.Наименование;
   СпрМ.Наименование=Наим;
   СпрМ.Записать();
   
       
   Конеццикла;
23 Попытка1С
 
09.08.11
15:20
(12) Отладчик поможет, я не телепат к сожалению.
24 Сияющий Асинхраль
 
09.08.11
15:21
(21) В (17) сказано то же самое что ты говоришь "(0) в этом коде ошибок нема, за исключением того, что нет проверки на то, что НАимМК выбран, когда наименование из него дёргаешь. "
25 borozavr
 
09.08.11
15:25
(0) использовать "ПорядокКодов()" перед СпрМ.ВыбратьЭлементы(0);
26 Босечка
 
09.08.11
15:26
Изменено Наименование! Может быть нарушена последовательность выборки!
27 Босечка
 
09.08.11
15:26
(22)   Изменено Наименование! Может быть нарушена последовательность выборки!
28 ДенисЧ
 
09.08.11
15:27
(26) см (25)
29 Босечка
 
09.08.11
15:42
(25) и (22) Спасибо, все заработало!
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.