Имя: Пароль:
1C
1С v8
перекинуть адреса контрагента с одного на другого
0 Razzle Kay
 
28.11.17
13:31
запросом отобрал все адреса контрагента
запрос = Новый запрос;
      запрос.Текст = "ВЫБРАТЬ
                     |    битАдресаКонтрагентов.Ссылка,
                     |    битАдресаКонтрагентов.Владелец
                     |ИЗ
                     |    Справочник.битАдресаКонтрагентов КАК битАдресаКонтрагентов
                     |ГДЕ
                     |    битАдресаКонтрагентов.Владелец.Наименование = ""Контрагент"""
                      ;
                      
                      Результат = Запрос.Выполнить().Выгрузить();

как их теперь перекинуть на Контрагент2 ?
1 СамыйУмный
 
28.11.17
13:32
Иди учи матчасть
2 Razzle Kay
 
28.11.17
13:34
А = Справочники.Контрагенты.НайтиПоНаименованию("Контрагент2");
Для каждого Строка из Результат Цикл
                          Строка.Владелец() = А;
                          Сообщить(Строка.Владелец());
                      КонецЦикла

а как записать?
3 СамыйУмный
 
28.11.17
13:36
Откуда вас таких берут
1. Строка.ПолучитьОбъект();
2. Строка.Владелец() = А;
3. Строка.Записать()
4 Borteg
 
28.11.17
13:37
(3) ужас...
5 h-sp
 
28.11.17
13:38
(2) не получится так. Владелец же со скобками.
6 СамыйУмный
 
28.11.17
13:39
(4) Сам ты ужас, на крыльях ночи
Да, Владелец без (), но я то скопировал у него.
7 Borteg
 
28.11.17
13:40
(6) Для каждого Строка из Результат Цикл

Строка.ПолучитьОбъект();???????????????
Получитьобъект от Строки таблицы значений?
8 Borteg
 
28.11.17
13:41
(6) 3. Строка.Записать()
Что записываешь? у тебя там не объекта не ссылки...
9 СамыйУмный
 
28.11.17
13:41
(7) Строка.Ссылка.ПолучитьОбъект
Все разжевывать надо?
Главное на ход мыслей натолкнуть
10 СамыйУмный
 
28.11.17
13:42
(8) Иди в баню пацан
11 catena
 
28.11.17
13:42
(6)А то, что Строка из результата запроса не смущает?
12 СамыйУмный
 
28.11.17
13:43
(11) Не понял вопроса, лично меня не смутить
13 Borteg
 
28.11.17
13:44
(10) Мда, очень умно, сделать в 3 простейших строчках 3 ошибки, и потом еще в баню когото посылать... Вот это уровень.
14 nordbox
 
28.11.17
13:44
Строка
Так переменная называться НЕ МОЖЕТ НИЗЯЯЯ
15 СамыйУмный
 
28.11.17
13:46
Да мне нас-рать, я не собираюсь ему разжевывать все основы языка программирования 1С, я натолкнул на мысль а там пускай уже сам думает
(13) Ты уже вернулся?
16 Razzle Kay
 
28.11.17
13:49
всё таки не перенести, а скопировать надо
17 Razzle Kay
 
28.11.17
13:50
пните плз
18 Бычье сердце
 
28.11.17
13:52
(0)

Для каждого СтрР из Результат Цикл
НовОбъект = Справочники.битАдресаКонтрагентов.Добавить();
ЗаполнитьЗначенияСвойств(НовОбъект,СтрР.Ссылка);
НовОбъект.Владелец = НовыйКонтрагент;
НовОбъект.Записать();
КонецЦикла;
19 Бычье сердце
 
28.11.17
13:53
Вместо Справочники.битАдресаКонтрагентов.Добавить()
Справочники.битАдресаКонтрагентов.СоздатьЭлемент()
20 1Сергей
 
28.11.17
13:55
(14) да ладно :)
21 Razzle Kay
 
28.11.17
13:56
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(18)}: Метод объекта не обнаружен (Добавить)
                                НовОбъект = Справочники.битАдресаКонтрагентов.Добавить();
22 1Сергей
 
28.11.17
14:04
(21) СоздатьЭлемент
23 Razzle Kay
 
28.11.17
14:06
(22) понял уже, ток почему то пустые создаются
24 nordbox
 
28.11.17
14:10
ЗаполнитьЗначенияСвойств(НовОбъект,СтрР);
25 Borteg
 
28.11.17
14:14
(23) Для каждого СтрР из Результат Цикл
НовыйЭлементСправочника = СтрР.Ссылка.Скопировать();
НовыйЭлементСправочника.Владелец  = НовыйКонтрагент;
НовыйЭлементСправочника.Записать();
КонецЦикла;
26 Borteg
 
28.11.17
14:15
(23) в том примере надо
ЗаполнитьЗначенияСвойств(НовОбъект,СтрР.Ссылка.Получитьобъект());
Но это не очень правильно будет, лучше тогда запросом получить все данные для заполнения и подставлять в заполнение выборку.
27 nordbox
 
28.11.17
14:16
Он новый объект заполняет ссылками а не значениями
ЗаполнитьЗначенияСвойств(НовОбъект,СтрР.Ссылка);
28 Razzle Kay
 
28.11.17
14:18
огромное спасибо всем
29 Borteg
 
28.11.17
14:19
(28) покажи что получить хоть, аж интересно
30 Razzle Kay
 
28.11.17
14:21
(29) что показать ? скрин адресов?
31 nordbox
 
28.11.17
14:22
(30) Код
32 yavasya
 
28.11.17
14:22
(0) вижу архитектуру БИТ и в моих глазах боль . . .
зачем справочник с адресами ... ну хотя бы в ТЧ в сам справочник или РС Контактная информация
33 Razzle Kay
 
28.11.17
14:22
из 25 скопипастил
34 Razzle Kay
 
28.11.17
14:23
(31) (29)  - (33)
35 yavasya
 
28.11.17
14:25
(0) апрос = Новый запрос;
      запрос.Текст = "ВЫБРАТЬ
                     |    битАдресаКонтрагентов.Ссылка,
                     |    битАдресаКонтрагентов.Владелец
                     |ИЗ
                     |    Справочник.битАдресаКонтрагентов КАК битАдресаКонтрагентов
                     |ГДЕ
                     |    битАдресаКонтрагентов.Владелец = &Ссылка
                      ;
                      
                      Результат = Запрос.Выполнить().Выгрузить();
36 yavasya
 
28.11.17
14:26
(0) по наименованию нельзя запросы строить
37 Бычье сердце
 
28.11.17
14:29
Тот самый случай, когда перекинуть руками быстрее, чем написать код)))).
Наверняка нужно для разового случае для 1-го контрагента.
38 Razzle Kay
 
28.11.17
14:31
(37) да, но адресов 300
39 Razzle Kay
 
28.11.17
14:32
(36) почему
40 yavasya
 
28.11.17
14:33
(38) может тебе надо дубли объединить контрагентов ?  


Задачу организационную объясни
41 nordbox
 
28.11.17
14:35
(39)
А = Справочники.Контрагенты.НайтиПоНаименованию("Контрагент2");
а если два одинаковых контрика?
42 yavasya
 
28.11.17
14:36
(37) возьми выгрузи в табличный документ ТЧ адреса и загрузи стандартной обработкой загрузка из Эксель.

Дичь задача если честно
43 Razzle Kay
 
28.11.17
14:37
(41) там название дикой Имя Фамилия Отчество - номер - чёто там - номер - крутое слово
44 Razzle Kay
 
28.11.17
14:37
(43) дикое* (42) (40) да я уже сделал, просто нужно сделать Контрагенту2 такие же адреса доставки, как у Контрагент1
45 nordbox
 
28.11.17
14:37
(43) ты сейчас сам то понял что сказал?
46 Razzle Kay
 
28.11.17
14:38
(45) да, а что ?
47 nordbox
 
28.11.17
14:42
(44) >>Имя Фамилия Отчество - номер - чёто там - номер - крутое слово
а ты уверен что поля Номер, чето, крутое слов у контр1 и контр2
одинаковые????
они для разных контриков могут и генериться и могут быть разными, надо смотреть алгоритм присвоения Имён
48 Razzle Kay
 
28.11.17
14:43
(47) ты не понял
49 Razzle Kay
 
28.11.17
14:43
(47) Имя Фамилия Отчество - номер - чёто там - номер - крутое слово  — это всё наименование
50 nordbox
 
28.11.17
14:43
и вот эти номера могут нести в себе информацию
51 nordbox
 
28.11.17
14:43
(49) Правильно, но откуда они беруться????
52 Razzle Kay
 
28.11.17
14:44
(50) да, несут, номер торгового представителя
53 Razzle Kay
 
28.11.17
14:44
(51) ручками вводятся
54 Razzle Kay
 
28.11.17
14:45
в общем я понял о чем вы, похожего наименования не ьбудет)
55 nordbox
 
28.11.17
14:51
Ну вот смотри, твое наименование может обрабатываться следующим образом:
Получается полностью наименование, далее, начиная с конца строки идет разбор на запчасти
Имя Фамилия Отчество - номер - чёто там - номер - крутое слово

Крутое слово-отправная точка
Номер-Номер агента
чего-то это значение какого то маркера
Номер также маркер какой то
далее остается Имя Фамилия Отчество через разделитель пробел делится на три части

ты уверен в правильности действий???
Один контри может быть и двух агентов
номера то разные, а ты номер одного присвоишь другому
56 Бычье сердце
 
28.11.17
15:11
Че-то там крутое слово))))))))))))
57 Razzle Kay
 
28.11.17
15:20
посмотрим
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.