Адреса Контрагентов

1. Daniil2011 31.01.12 13:17 Сейчас в теме
База данных была перемещена из 1с 7.7 в 1с 8.2 Комплексная автоматизация 1.1 (1.1.16.1). В справочнике Контрагенты были перемещены все контрагенты, но теперь у каждого отсутствуют контакты в том числе и юридический адрес. Отдельно есть список юридических адресов в Excel. Вопрос как переместить контактную информацию из Excel?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. tusv 212 31.01.12 14:31 Сейчас в теме
(1) Daniil2011, Где то так
ЮрАдрес=Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
ФактАдрес=Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
ТипАдрес=Перечисления.ТипыКонтактнойИнформации.Адрес;

Телефон=Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
ТипТелефон=Перечисления.ТипыКонтактнойИнформации.Телефон;
Набор=РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
//Открываем цикл перебора Excel файла
//Ищем контрагента

Набор.Отбор.Объект.Использование=Истина;
Набор.Отбор.Объект.Значение=<Найденная ссылка Контрагент>;
Набор.Отбор.Тип.Использование=Истина;
Набор.Отбор.Тип.Значение=ТипАдрес;
Набор.Отбор.Вид.Использование=Истина;
Набор.Отбор.Вид.Значение=ЮрАдрес;
Набор.Прочитать();
Если Набор.Количество()=0 Тогда
Запись=Набор.Добавить();
Запись.Объект= <Найденная ссылка Контрагент>;
Запись.Тип=ТипАдрес;
Запись.Вид=ЮрАдрес;
Запись.Представление=<Значение адреса>;
КонецЕсли;
Набор.Записать();
//Закрываем цикл перебора Excel файла
Serg0FFan; +1 Ответить
10. Daniil2011 01.02.12 14:55 Сейчас в теме
Кому интересно получить правильный код для заполнения адресов Контрагентов, то вот:

Процедура ДействияФормыДействие(Кнопка)
ЗагрузкаИзExcel("C:\1с\Адреса.xls");
КонецПроцедуры

Функция ЗагрузкаИзExcel(ИмяФайла)
ЮрАдрес=Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
ФактАдрес=Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
ТипАдрес=Перечисления.ТипыКонтактнойИнформации.Адрес;

Телефон=Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
ФаксТелефон=Справочники.ВидыКонтактнойИнформации.ФаксКонтрагента;
ТипТелефон=Перечисления.ТипыКонтактнойИнформации.Телефон;
Набор=РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();

//Номер листа в книге Excel для получения данных
НомерЛиста = 1;
//Пытаемся подключиться к Excel
Попытка
Excel = новый COMОбъект("Excel.Application");
Сообщить("Похоже, всё хорошо.");
Исключение
Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
Возврат Ложь;
КонецПопытки;
//Подключились удачно, открываем файл
Excel.Workbooks.Open(ИмяФайла);
//Открываем необходимый лист
Excel.Sheets(1).select();
Лист1 = Excel.Worksheets(1);
//Получим количество строк и колонок.
//В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
Если Версия = "8" тогда
ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
Иначе
ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
Конецесли;
//Открываем цикл перебора Excel файла
//Ищем контрагента
Контрагент = Справочники.Контрагенты ;
Для i=1 По ФайлСтрок
Цикл
Контр = Контрагент.НайтиПоНаименованию( Лист1.Cells(i,1).Value);
Если Контр = Контрагент.ПустаяСсылка()
Тогда
Сообщить("Контрагента " + Лист1.Cells(i,1).Value + " нет");
Иначе
Набор.Отбор.Объект.Использование=Истина;
Набор.Отбор.Объект.Значение=Контр;
Набор.Прочитать();
Если Набор.Количество()=0 Тогда
Запись=Набор.Добавить();
Запись.Объект= Контр;
Запись.Тип=ТипАдрес;
Запись.Вид=ЮрАдрес;
Запись.Представление = Лист1.Cells(i,2).Value;
Запись=Набор.Добавить();
Запись.Объект = Контр;
Запись.Тип=ТипАдрес;
Запись.Вид=ФактАдрес;
Запись.Представление= Лист1.Cells(i,3).Value;
Запись=Набор.Добавить();
Запись.Объект= Контр;
Запись.Тип=ТипТелефон;
Запись.Вид=Телефон;
Запись.Представление= Лист1.Cells(i,4).Value;
Запись=Набор.Добавить();
Запись.Объект= Контр;
Запись.Тип=ТипТелефон;
Запись.Вид=ФаксТелефон;
Запись.Представление= Лист1.Cells(i,5).Value;
КонецЕсли;
//Закрываем цикл перебора Excel файла
КонецЕсли;
КонецЦикла;
//Закрываем Excel
Excel.ActiveWorkbook.Close();
КонецФункции

Соответственно Excel файл находится "C:\1с\" и называется Адреса.xls. Где столбцы: 1. Название, 2. ЮрАдрес, 3. ФактАдрес, 4.Телефон, 5.Факс.
Кстати, адреса записываются как за пределами РФ.
11. margo_m09 01.04.13 12:21 Сейчас в теме
(10) Daniil2011, а можете помощь написать проверку заполнения контактной информации в справочнике физические лица
2. Daniil2011 31.01.12 13:21 Сейчас в теме
* в Excel юридический адрес уже в виде нескольких столбцов (код, город, улица, дом)
3. ula1c 31.01.12 13:37 Сейчас в теме
(2) Daniil2011, я в подобной ситуации в Excelе формировала адрес с помощью строковых функций в формат для 1С. Затем в 1с создавала новый справочник, куда импортировала данные из Excel стандартной процедурой импорта справочников.И далее с помощью несложной обработки дополняла рабочий справочник данными из нового справочника. По окночании удалила из конфигурации уже ненужный справочник.
Можно конечно реализовать что-то более изящное Здесь на Инфостарте втречала обработку, объединяющую/разъединяющую адрес на составляющие, может она вам окажется нужной:
http://infostart.ru/public/91732/
Serg0FFan; +1 Ответить
4. Daniil2011 31.01.12 13:54 Сейчас в теме
"с помощью несложной обработки дополняла рабочий справочник данными". Вот отсюда подробнее. Несложная обработка это какая? И вполне возможно, если понять код этой обработки, то дополнив её можно пропустить этап "создание доп.справочника"
5. ula1c 31.01.12 14:13 Сейчас в теме
(4) Daniil2011, Обработка такая - перебор строк исходного справочник справочника, поиск по реквизиту "Наименование" в доп.справочнике, присвоение значения реквизиту адрес исходного справочника, если найдено значение в доп.справочнике.
6. Daniil2011 31.01.12 14:27 Сейчас в теме
ula1c, В Контрагентах нет реквизита "адрес" и вообще что-то подобное (в Комплексная автоматизация 1.1 ). В форме, где должен быть адрес "СправочникСсылка.ВидыКонтактнойИнформации, Строка". В этом и проблема.
8. Daniil2011 31.01.12 15:09 Сейчас в теме
tusv, у меня выдает ошибку:
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2436,16)}: Переменная не определена (ВидАдрес)
Набор[0].Вид=<<?>>ВидАдрес; (Проверка: Толстый клиент (обычное приложение))

ВидАдрес откуда брать? Чем он отличается от ТипАдреса?
9. tusv 212 31.01.12 15:23 Сейчас в теме
(8) Daniil2011, Я же не проверял
Просто текст набросал
Вместо ВидАдрес ЮрАдрес
И Набор.Записать() Перед КонецЦикла;
в (7) Поправил
Daniil2011; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот