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

Тема в разделе "1C и всё что с ней связано", создана пользователем bremlin, 29 июн 2010.

  1. bremlin

    bremlin Гость

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

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

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Не слишком внятно сформулировано, но некоторые моменты уже вызывают сомнение
    я бы заменил на СпрЖКХ.СубконтоЖКХ_1
    на РПС_ЛицевойСчет = СчетПоКоду("76.5")

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

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

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

    bremlin Гость

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

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    А тип значения у реквизита субконто в документе неопределенный.. Значит надо до смены счета вывести в отдельную переменную значение контрагента, далее после смены счета через НазначитьТип() установить тип субконто (для субконто1 например) и присвоить этому реквизиту значение из той самой отдельной переменной.

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

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    При таком присвоении
    СпрЖКХ.КоррСчетЖКХ получает значение типа "Строка", а значит просто пусто, если КоррСчетЖКХ описан, как "Счет"
    надо
    СпрЖКХ.КоррСчетЖКХ = СчетПоКоду("76.РК");
    Тогда у этого реквизита будет тип "Счет"
     
Загрузка...
Похожие Темы - Как выбрать контрагента
  1. mazer1325
    Ответов:
    7
    Просмотров:
    209
  2. rownong
    Ответов:
    0
    Просмотров:
    770
  3. RadoXX
    Ответов:
    2
    Просмотров:
    1.438
  4. Dock1100
    Ответов:
    2
    Просмотров:
    3.453
  5. HelenHelen
    Ответов:
    20
    Просмотров:
    5.256

Поделиться этой страницей