Имя: Пароль:
1C
 
Помогите привязать справочник к документу программно.
0 SemT
 
28.02.06
16:51
В продолжении темы
[url] Из полей док. сделать элем.справочника и привязать их к документу.Как? [/url]

Конфа писалась с нуля. Сразу не был сделан справочник Водители. В документе Отгрузка вписывались данные вручную. Счас привожу в божеский вид.Самый банальный и долгий способ привязать док. к спр. ручками. Документов около 1000...

Итак.
1.Справочник Водители
реквизиты
 Наименование(ФИО)
 ПаспортНомер
 Кем
 ПаспортДата

В справочнике сейчас много одинаковых элементов... КодЭлемента справочника соответсвует НомеруДокумента.

2.Документ Отгрузка
реквизиты  
 Водитель
 ПаспортСерия
 ПаспортНомер
 ПаспортВыдан
 ПаспортДатаВыдачи

Очень хочу программно привязать документ к справочнику.
Обработка на один раз. В последствии в документе ручками выбирать будут эти элементы справочника. Помогите
1 Ёпрст2
 
28.02.06
16:55
(0) Реквизиты строковые что ли ?
2 SemT
 
28.02.06
16:57
В документе на данный момент "строковые". Элементы Справочника делал через модуль документа.
3 SemT
 
28.02.06
16:58
Естественно. Что и в документе в конечном итоге реквизит должен остаться только Водитель, который и будет ссылаться на справочник.
4 Shaman100M
 
28.02.06
16:58
А прежнее содержимое спр Водители нужно?
5 lexa
 
28.02.06
16:59
так ты от повторов хочешь избавиться?
6 Токс
 
28.02.06
17:00
Насколько понял, примерно так...
1. Прошерстить все доки и заполнить справочник.Водители
2. Добавить реквизит Справочник.Водитель в доки и заполнить по ручному реквизиту дока.
3. Удалить из доков ручной реквизит.
7 SemT
 
28.02.06
17:01
(6) Да так
1 пункт уже сделал.
8 SemT
 
28.02.06
17:03
(4) могу спокойно прибить. Справочник забивал из Реквизитов Документа
(5) от повторов избавится могу в легкую
(6) точнее отобразил что нужно
9 lexa
 
28.02.06
17:03
вообще-то 100 не так уж много, я бы все в ексел, потом глазками, а потом в 1с
реквизиты строковые, могли лишний пробел вбить, раскладку перепутать, програмно все не отловишь
10 Shaman100M
 
28.02.06
17:06
(9) ПаспортСерия и ПаспортНомер могут выступать в качестве ID в процессе записи справочника и сразу, когда шерстим документ - сразу и заполняем "Водителя" в доке типа спр.
11 Токс
 
28.02.06
17:06
(7) Я вообще-то прикинул как это делать...
А если это итак понятно, и п.1 сделан, то в чем проблема?
Доки проводятся? Текстовые реквизиты ещё где-то учавствуют?
12 Ёпрст2
 
28.02.06
17:07
(0)На вот ...

Док = СоздатьОбъект("Документ.Отгрузка");
Спр = СоздатьОбъект("Справочник.Водители");
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Водитель");
ТЗ.НоваяКолонка("ПаспортНомер");
.......

Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент()=1 Цикл
   Стр="";
   Если ТЗ.НайтиЗначение(Док.Водитель,Стр,"Водитель")=0 Тогда
      ТЗ.НоваяСтрока();
      ТЗ.Водитель = Док.Водитель;
      ТЗ.ПаспортНомер = Док.ПаспортНомер;
       ......
  КонецЕсли;
КонецЦикла;
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
  Если Спр.НайтиПоНаименованию(ТЗ.Водитель)=0 Тогда
       Спр.Новый();
       Спр.Наименование = ТЗ.Водитель;
       Спр.ПаспортНомер = ТЗ.ПаспортНомер;
        .....
       Спр.Записать();
 КонецЕсли;
КонецЦикла;
13 lexa
 
28.02.06
17:07
удали все элементы справочника
сделай запрос по реквизитам дока, загони в ТЗ, сверни ТЗ, на основе тз саполни справочник, перебери доки и справочник при совпадении соответствующих реквизитов присвой реквизиту водитель соответствующий реквизит справочника
14 lexa
 
28.02.06
17:09
(2) неплохо бы все реквизиты сравнить, а то вдруг однофамильцы
15 lexa
 
28.02.06
17:10
+14 (12)
16 lexa
 
28.02.06
17:11
все равно вначале неплохо бы в екселе глазками глянуть список водил из доков
17 SemT
 
28.02.06
17:12
(16) правильно (10) сказал ПаспортСерия + ПаспортНомер могут служить ID
18 lexa
 
28.02.06
17:16
(170 а если в серию 2 пробела вместо одного забабахали?
19 Токс
 
28.02.06
17:19
СтрЗаменить(Серия," ","");
СтрЗаменить(Серия,"  ","");
СтрЗаменить(Серия,"   ","");
и т.д...
20 lexa
 
28.02.06
17:23
+19 СокрЛП(Сериия);
21 lexa
 
28.02.06
17:24
надо было ИНН забивать, а паспортные данные по идее периодические реквизиты
22 SemT
 
28.02.06
17:31
В реквизитах документа ПаспортСерия (строка 5 симв) ПаспортНомер(число 8симв)
23 lexa
 
28.02.06
17:37
(22) все равно глянь перед програмным заполнением
Ошибка? Это не ошибка, это системная функция.