Как изменить адрес контрагента в 1С 8.1
11.02.2009
11:14
#1
"Пожалуйста подскажите как можно изменить программно юридический адрес контрагента?
Контрагент = Справочники.Контрагенты.НайтиПоКоду(КодКонтрагента).ПолучитьОбъект();
Контрагент.ИНН = ИНН;
Контрагент.КПП = КПП;
.... тут нужно написать изменение юридического адреса, где переменная адреса - АдресКонтрагента
Контрагент.Записать();
Я так понял через общий модуль нужно это сделать?
Не пойму что то...Подскажите пожалуйста, знаю что вопрос дурацкий на самом деле...
"
Контрагент = Справочники.Контрагенты.НайтиПоКоду(КодКонтрагента).ПолучитьОбъект();
Контрагент.ИНН = ИНН;
Контрагент.КПП = КПП;
.... тут нужно написать изменение юридического адреса, где переменная адреса - АдресКонтрагента
Контрагент.Записать();
Я так понял через общий модуль нужно это сделать?
Не пойму что то...Подскажите пожалуйста, знаю что вопрос дурацкий на самом деле...
"
07.09.2009
11:31
#3
"Вот как я выводил юридический и фактический адреса контрагентов в 1С 8.1:
// пишем самодельную функцию:
Функция ПолучитьАдрес(КодКонтрагента, ВидАдреса=0)
Результат = """";
Если ВидАдреса = 0 Тогда
Адрес = "Юридический адрес";
Иначе
Адрес = "Фактический адрес";
КонецЕсли;
НаборЗаписей = РегистрыСведений.КонтактнаяИнформация;
ВыборкаРС = НаборЗаписей.Выбрать();
Пока ВыборкаРС.Следующий() Цикл
Если ТипЗнч(ВыборкаРС.Объект) = Тип("СправочникСсылка.Контрагенты") Тогда
Если СокрЛП(ВыборкаРС.Объект.Код) = СокрЛП(КодКонтрагента) Тогда
Если СокрЛП(ВыборкаРС.Вид) = Адрес Тогда
Результат = Строка(ВыборкаРС.Представление);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Процедура КнопкаСформироватьНажатие(Кнопка)
// Вставить содержимое обработчика.
//Родитель = Справочники.Контрагенты.НайтиПоКоду("000000001"); // группа справочника
ВыборкаСК = Справочники.Контрагенты.Выбрать(Справочники.Контрагенты.ПустаяСсылка(),,,"Код Возр");
//ВыборкаСК = Справочники.Контрагенты.Выбрать(Родитель,,,"Код Возр");
Пока ВыборкаСК.Следующий() Цикл
Если ВыборкаСК.ЭтоГруппа = Истина Тогда
Продолжить;
КонецЕсли;
Адрес = ПолучитьАдрес(ВыборкаСК.Код,1);
Если ПустаяСтрока(Строка(Адрес)) = 0 Тогда
Сообщить(Адрес);
Иначе
Сообщить(" ");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
В восьмёрке часть данных справочника контрагентов хранится не в самом справочнике "Контрагенты" (как в 7-ке), а в РегистрыСведений.КонтактнаяИнформация. Вот такая вот система "через задницу"."
// пишем самодельную функцию:
Функция ПолучитьАдрес(КодКонтрагента, ВидАдреса=0)
Результат = """";
Если ВидАдреса = 0 Тогда
Адрес = "Юридический адрес";
Иначе
Адрес = "Фактический адрес";
КонецЕсли;
НаборЗаписей = РегистрыСведений.КонтактнаяИнформация;
ВыборкаРС = НаборЗаписей.Выбрать();
Пока ВыборкаРС.Следующий() Цикл
Если ТипЗнч(ВыборкаРС.Объект) = Тип("СправочникСсылка.Контрагенты") Тогда
Если СокрЛП(ВыборкаРС.Объект.Код) = СокрЛП(КодКонтрагента) Тогда
Если СокрЛП(ВыборкаРС.Вид) = Адрес Тогда
Результат = Строка(ВыборкаРС.Представление);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Процедура КнопкаСформироватьНажатие(Кнопка)
// Вставить содержимое обработчика.
//Родитель = Справочники.Контрагенты.НайтиПоКоду("000000001"); // группа справочника
ВыборкаСК = Справочники.Контрагенты.Выбрать(Справочники.Контрагенты.ПустаяСсылка(),,,"Код Возр");
//ВыборкаСК = Справочники.Контрагенты.Выбрать(Родитель,,,"Код Возр");
Пока ВыборкаСК.Следующий() Цикл
Если ВыборкаСК.ЭтоГруппа = Истина Тогда
Продолжить;
КонецЕсли;
Адрес = ПолучитьАдрес(ВыборкаСК.Код,1);
Если ПустаяСтрока(Строка(Адрес)) = 0 Тогда
Сообщить(Адрес);
Иначе
Сообщить(" ");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
В восьмёрке часть данных справочника контрагентов хранится не в самом справочнике "Контрагенты" (как в 7-ке), а в РегистрыСведений.КонтактнаяИнформация. Вот такая вот система "через задницу"."
07.09.2009
13:20
#4
> Вот такая вот система "через задницу".
ИМХО тоже самое можно сказать про вышеописанный код программы...
ИМХО тоже самое можно сказать про вышеописанный код программы...
07.09.2009
15:24
#5
Вообще-то это мой первый в жизни код на 1С 8.0.
Написан на скорую руку - без знания 8-ки, чисто через Яндекс + Синтакс-помощник. Задача стояла перегрузить справочник контрагенты из 8-ки в 7-ку с минимумом затрат времени на изучение 8-ки.
Всё-таки трудно, абсолютно не зная 8-ку, за 2 дня написать даже такой код.
Всё-таки трудно, абсолютно не зная 8-ку, за 2 дня написать даже такой код.
07.09.2009
16:02
#6
"Ну если это не последний Ваш код на 8-ке, то в следующий раз, когда захотите поделиться чем-то полезным на форуме, то хотя бы убирайте из кода все отладочные строки и, по возможности, постарайтесь избегать критики тех механизмов 1С, с которыми знакомы только поверхностно. ;)"
08.09.2009
10:16
#7
Я критикую потому, что вообще очень плохого мнения о продукции фирмы 1С. Они способны извратить (в своих программных продуктах) самую здравую идею. 8-ка произвела негативное впечатление (даже по сравнению с 7-кой, которая тоже плохая).
Отладочный код - пригодится другим, у кого-то может быть чуть иная задача.
Кстати - небольшое добавление: к коду
Если СокрЛП(ВыборкаРС.Объект.Код) = СокрЛП(КодКонтрагента) Тогда
нужно ещё добавить доп. проверку на совпадения кодов родителей.
Отладочный код - пригодится другим, у кого-то может быть чуть иная задача.
Кстати - небольшое добавление: к коду
Если СокрЛП(ВыборкаРС.Объект.Код) = СокрЛП(КодКонтрагента) Тогда
нужно ещё добавить доп. проверку на совпадения кодов родителей.
08.09.2009
12:53
#8
"а переборка всех записей всего Регистра не нужна , а если там будет миллион записей?
Курите Отборы , запросы
из справки:
Курсы = РегистрыСведений.КурсыВалют;
ОтборВалют = Новый Структура("Валюта");
ОтборВалют.Валюта = ВыбВалюта;
ВыборкаКурсовВалют = Курсы.Выбрать(,,ОтборВалют);
Пока ВыборкаКурсовВалют.Следующий() Цикл
Сообщить("Дата " + ВыборкаКурсовВалют.Период +
" Валюта "+СокрЛП(ВыборкаКурсовВалют.Валюта) +
", Курс "+ ВыборкаКурсовВалют.Курс );
КонецЦикла;
"
Курите Отборы , запросы
из справки:
Курсы = РегистрыСведений.КурсыВалют;
ОтборВалют = Новый Структура("Валюта");
ОтборВалют.Валюта = ВыбВалюта;
ВыборкаКурсовВалют = Курсы.Выбрать(,,ОтборВалют);
Пока ВыборкаКурсовВалют.Следующий() Цикл
Сообщить("Дата " + ВыборкаКурсовВалют.Период +
" Валюта "+СокрЛП(ВыборкаКурсовВалют.Валюта) +
", Курс "+ ВыборкаКурсовВалют.Курс );
КонецЦикла;
"
книга покупок в Комплекской 7.70.490 строка сторно НДС по предопл.не отображ.в печ.форме!!ЗИК 7,7 289 релиз доплата за совмещение
Читают тему
(гостей: 1)