Имя: Пароль:
1C
1С v8
Запись справочника, УТ 1.1
,
0 Norbertano
 
02.08.12
11:41
Подскажите, возникла сложность при записи справочника, не могу записать

Справочники.Контрагенты1 точная копия Справочники.Контрагенты
В Справочники.Контрагенты нужно изменить один реквизит, но так он заполнен в более чем 500 записях, чтобы не потерять, хочу продублировать в Справочники.Контрагенты1, поменять структуру реквизитов в Справочники.Контрагенты и скопировать записи назад.

Процедура КнопкаСформироватьНажатие(Кнопка)
   
Выборка = Справочники.Контрагенты1.Выбрать();    

Пока Выборка.Следующий() Цикл

Если Выборка.ТорговаяТочка.Пустая() = Ложь Тогда
//СоздатьНовогоКонтрагента(Выборка);  
a=0;
КонецЕсли;



КонецЦикла;
КонецПроцедуры


Функция СоздатьНовогоКонтрагента(СтруктураСправочника)

       Перем НовыйКонтрагент,СпрПользователи;

       СпрКонтрагенты = Справочники.Контрагенты1;
       НовыйКонтрагент = СпрКонтрагенты.СоздатьЭлемент();
       НовыйКонтрагент = СтруктураСправочника;
       Попытка
               НовыйКонтрагент.Записать();
               Возврат 1;
       Исключение
               Возврат 0;
       КонецПопытки;

КонецФункции
1 DrShad
 
02.08.12
11:42
что за Ут 1.1?
2 Norbertano
 
02.08.12
11:42
поправка - в цикле
Если Выборка.ТорговаяТочка.Пустая() = Ложь Тогда
СоздатьНовогоКонтрагента(Выборка);  
КонецЕсли;

Управление Торговлей 1.1
3 ssh2006
 
02.08.12
11:44
НовыйКонтрагент = СтруктураСправочника;
4 DrShad
 
02.08.12
11:46
(2) я не знаю такой конфы как Управление торговлей 1.1
5 Norbertano
 
02.08.12
11:47
Управление торговым предприятием для Украины 1.1, прошу прощения
6 DrShad
 
02.08.12
11:50
[НовыйКонтрагент = СтруктураСправочника;] это что?
7 Norbertano
 
02.08.12
11:55
Процедура КнопкаСформироватьНажатие(Кнопка)
   
Выборка = Справочники.Контрагенты.Выбрать();    
Пока Выборка.Следующий() Цикл
   
//Выбираем для сохранения  только те записи, в которых заполнен реквизит Справочники.Контрагенты.ТорговаяТочка
Если Выборка.ТорговаяТочка.Пустая() = Ложь Тогда
СоздатьНовогоКонтрагента(Выборка);  
КонецЕсли;

КонецЦикла;
КонецПроцедуры


Функция СоздатьНовогоКонтрагента(СтруктураСправочника)

       Перем НовыйКонтрагент,СпрПользователи;

       СпрКонтрагенты = Справочники.Контрагенты1;
       НовыйКонтрагент = СпрКонтрагенты.СоздатьЭлемент();
       НовыйКонтрагент = СтруктураСправочника;
       Попытка
               НовыйКонтрагент.Записать();
               Возврат 1;
       Исключение
               Возврат 0;
       КонецПопытки;

КонецФункции
8 DrShad
 
02.08.12
11:58
выбрось весь свой код на помойку, да и саму реализацию задачи тоже
9 yanejsh
 
02.08.12
11:58
СтруктураСправочника - у этого элемента какой тип?
а у НовыйКонтрагент  - какой тип?
10 Norbertano
 
02.08.12
12:01
DrShad, прошу прощения, но здесь как в мультике "Для того чтобы купить, нужно что-нибудь продать"
yanejsh,
СпрКонтрагенты = Справочники.Контрагенты1;
НовыйКонтрагент = СпрКонтрагенты.СоздатьЭлемент();
11 yanejsh
 
02.08.12
12:02
(10) на первую часть вопроса ответь
12 DrShad
 
02.08.12
12:04
(11) да нафига нужен этот ответ, если у ТС быдлокод, то исправление ошибочной строки не изменит картины в целом
13 yanejsh
 
02.08.12
12:06
(12) надо же с чего то начать... про типы может почитает
14 Norbertano
 
02.08.12
12:07
DrShad, Вы крутой спец?
Я учусь и спрашиваю у спецов, а от Вас помощи как от козла молока, только и слышно "быдлокод", "выкинь на помойку"
15 Norbertano
 
02.08.12
12:09
Есть два справочника, идентичные
Справочники.Контрагенты
Справочники.Контрагенты1
Задача - скопировать записи из Справочники.Контрагенты в Справочники.Контрагенты1, отобрав их предварительно по заполненному реквизиту
Я ведь не прошу написать код за меня, прошу помочь с тем, что есть
16 yanejsh
 
02.08.12
12:09
если учишься, то убери свой гонор и слушайся умных людей. Таких как DrShad
17 DrShad
 
02.08.12
12:17
(15) не нужно ничего копировать в Контрагенты1
18 ssh2006
 
02.08.12
12:19
(15) ЗаполнитьЗначенияСвойств(НовыйКонтрагент , СтруктураСправочника.Ссылка)
19 DrShad
 
02.08.12
12:19
+(17) давай начнем сначала, а именно немного подробнее опиши проблему
20 ssh2006
 
02.08.12
12:21
+(18) Исключая свойство Ссылка
21 Norbertano
 
02.08.12
12:23
Проблема вот в чем, в справочнике Контрагенты я создал реквизит "ТорговаяТочка", операторы уже заполнили 500 из примерно 900 контрагентов, теперь поставили задачу по-другому и получается мне нужно удалить этот реквизит, создать другой и просить операторов заново заполнить. Я планировал создать идентичный справочник, заполнить его из справочника Контрагенты, изменить его и обработкой обратно заполнить его из Контрагенты1
22 DrShad
 
02.08.12
12:25
[теперь поставили задачу по-другому] что именно по-другому? и не зачем плодить реквизиты - можно использовать свойства
23 Norbertano
 
02.08.12
12:26
ssh2006
{Форма.ФормаОтчета.Форма(25)}: Ошибка при вызове метода контекста (ЗаполнитьЗначенияСвойств)
       ЗаполнитьЗначенияСвойств(НовыйКонтрагент , СтруктураСправочника);
по причине:
Ошибка установки значения свойства 'Владелец'
по причине:
Справочник не имеет владельца
24 hhhh
 
02.08.12
12:27
(23) а зачем удалять реквизит? Просто переименуй его.
25 DrShad
 
02.08.12
12:27
(23) ну так ты не указал владельца в новом справочнике
26 yanejsh
 
02.08.12
12:27
создаешь новый реквизит, заполняешь его из старого реквизита, удаляешь старый реквизит
27 ssh2006
 
02.08.12
12:28
(21) Удали реквизит с формы. Добавь новый. Сделай какое тебе надо перезаполнение и удали реквизит.

(23) потому что путь решения ошибочен
28 Norbertano
 
02.08.12
12:30
У справочника Контрагенты нет владельца
Я его скопировал, Контрагенты1 точная копия Контрагенты

Я попробую
"Удали реквизит с формы. Добавь новый. Сделай какое тебе надо перезаполнение и удали реквизит."
Закон Брукера: Даже маленькая практика стоит большой теории.