Как выбрать контрагента.

  • Автор темы bremlin
  • Дата начала
B

bremlin

Гость
#1
Доброго времени суток. Опишу ситуацию в целом.
1С 7.7 бухгалтерия. С дописанной конфигурацией под ЖКХ. В общем есть задача делать импорт данных об оплате за квартиру из файлика xls в бухгалтерскую справку, по 150-200 записей в день в одну справку.
Импорт делается по номеру лицевого счёта. Вроде
99007110253 Сумма
9900712021 Сумма

Где в общем 11 и 12 - номер дома в справочнике, ну а 253 и 21 - номера квартир.
Поиск нужной квартиры делаю через:
Код:
	СовсемПолныйКод = Число((Excel.Cells(ТекСтрока, 1).Value));
Если Лев(СокрЛП(СовсемПолныйКод), 5) = "99007" Тогда
ПолныйКод = "" + Число(Сред(СокрЛП(СовсемПолныйКод), 6, 2)) + "/" + Число(Сред(СокрЛП(СовсемПолныйКод), 8, 4));
Иначе
ПолныйКод = СокрЛП(СтрЗаменить(СовсемПолныйКод, "-", "/"));
КонецЕсли;
Код:
СпрЖКХ = СоздатьОбъект("Справочник.ЖКХ");
Если СпрЖКХ.Выбран() = 0 Тогда
Если СпрЖКХ.НайтиПоКоду(ПолныйКод, 2 - "поиск по полному коду через разделитель") = 1 Тогда
РПС_ЛицевойСчет1 = СпрЖКХ.ТекущийЭлемент().СубконтоЖКХ_1; 
РПС_ЛицевойСчет2 = СпрЖКХ.ТекущийЭлемент().СубконтоЖКХ_2;	
РПС_ЛицевойСчет3 = СпрЖКХ.ТекущийЭлемент().СубконтоЖКХ_3; 
РПС_ЛицевойСчет = СпрЖКХ.ТекущийЭлемент().КоррСчетЖКХ;
И все хорошо и здорово. Но проблема появилась в том, что раньше некоторые квартиры были на счёте 76.5, потом их перевели на 76.РК, но переводили не в справочнике, а просто при создании квитанции на оплату, идёт проверку, если квартира старая, то счёт выставляется на счёт 76.РК, если позже указанный даты, то уже смотрится значение из справочника.
И сейчас, когда идёт импорт и вытаскиваются данные из справочника, то он берёт данные по тому счёту которые там, т.е. 76.5, а надо 76.РК.
При замене:
Код:
				Если СчетПоКоду(РПС_ЛицевойСчет) = "76.5" Тогда
СпрЖКХ.ТекущийЭлемент().КоррСчетЖКХ; = "76.РК";
Данные по СубконтаЖКХ_1 сбрасываются, а там собственно сам котрагент.
И вот если КоррСчетЖКХ я могу установить просто = "76.РК", то я что-то не понимаю пока как можно присвоить СпрЖКХ.ТекущийЭлемент().СубконтоЖКХ_1 новое значение выбранное из справочника ЖКХ(там нужно зайти в нужный дом и выбрать нужную квартиру).
Подскажите пожалуйста, как можно заменить этот атрибут у элемента в справочнике на нужный мне?
 

vbs

Well-Known Member
18.02.2007
1 708
3
#2
Не слишком внятно сформулировано, но некоторые моменты уже вызывают сомнение
СпрЖКХ.ТекущийЭлемент().СубконтоЖКХ_1
я бы заменил на СпрЖКХ.СубконтоЖКХ_1
СчетПоКоду(РПС_ЛицевойСчет) = "76.5"
на РПС_ЛицевойСчет = СчетПоКоду("76.5")

вообще, зачем использовать ТекущийЭлемент() ?
Просто
СпрЖКХ.КоррСчетЖКХ; = СчетПоКоду("76.РК");
СпрЖКХ.Записать();

должно сработать

PS. Если я правильно уловил проблему
 
B

bremlin

Гость
#3
Согласен, что можно и без ТекущийЭлемент().
Проблема в том, что я меняю СчетПоКоду("76.РК") и сбрасываются данные по контрагенту.
И чтобы заного поставить его, нужно как-то выбрать его из справочника.
Для этого есть код группы(дом) и номер контрагента(квартира).
Но я не знаю как установить контрагент:)
 

puh14

Well-Known Member
11.07.2008
1 412
0
#4
А тип значения у реквизита субконто в документе неопределенный.. Значит надо до смены счета вывести в отдельную переменную значение контрагента, далее после смены счета через НазначитьТип() установить тип субконто (для субконто1 например) и присвоить этому реквизиту значение из той самой отдельной переменной.

кстати - может там тип субконто на 76.РК вообще не конрагент?
 

vbs

Well-Known Member
18.02.2007
1 708
3
#5
СпрЖКХ.ТекущийЭлемент().КоррСчетЖКХ = "76.РК";
При таком присвоении
СпрЖКХ.КоррСчетЖКХ получает значение типа "Строка", а значит просто пусто, если КоррСчетЖКХ описан, как "Счет"
надо
СпрЖКХ.КоррСчетЖКХ = СчетПоКоду("76.РК");
Тогда у этого реквизита будет тип "Счет"