[РЕШЕНО] Проверка счета на забалансовый

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем nbIpKuH_BaH9I, 16 дек 2015.

  1. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Всем привет. Каким образом в 7.7 можно осуществить такую проверку?
    --- Объединение сообщений, 16 дек 2015 ---
    Вот кусок кода
    Код:
        Операция.ВыбратьПроводки();
        Пока Операция.ПолучитьПроводку()=1 Цикл
            //проверим на активную проводку
            Если Операция.ВключитьПроводки()=0 Тогда
                Продолжить;
            КонецЕсли;
            Если Операция.Дебет.Счет.Забалансовый=1 ИЛИ Операция.Кредит.Счет.Забалансовый=1 Тогда //счет является забалансовым
                Если (Параметры.СписокНеПереносящихсяСчетов.НайтиЗначение(Операция.Дебет.Счет)>0) ИЛИ
                    (Параметры.СписокНеПереносящихсяСчетов.НайтиЗначение(Операция.Кредит.Счет)>0) Тогда
                    Продолжить;
                КонецЕсли;
            Иначе
                Если ((Параметры.СписокНеПереносящихсяСчетов.НайтиЗначение(Операция.Дебет.Счет)>0) ИЛИ (ПустоеЗначение(Операция.Дебет.Счет)=1)) ИЛИ
                    ((Параметры.СписокНеПереносящихсяСчетов.НайтиЗначение(Операция.Кредит.Счет)>0) ИЛИ (ПустоеЗначение(Операция.Кредит.Счет)=1)) Тогда
                    Продолжить;
                КонецЕсли;
            КонецЕсли;
    
    Последнее редактирование: 16 дек 2015
  2. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Выдержка из СП

    Забалансовый
    Признак забалансовости счета.

    Синтаксис:

    Забалансовый

    Англоязычный синоним:

    IsSingle

    Значение:

    1 — выбранный счет является забалансовым счетом;

    0 — выбранный счет является балансовым счетом.

    Описание:

    Атрибут содержит признак того, что счет является забалансовым, то есть не участвует в двойной записи, не требует в проводках наличия корреспонденции и не может корреспондировать с балансовыми счетами. Изменение данного значения из языка следует производить только в особых случаях и с учетом всех особенностей настройки учета. После изменения настроек учета система может потребовать выполнить пересчет итогов.

    Пример:

    Сч.Забалансовый = 1;


    Предлагаю проверить на значение переменую "Сч"
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А что именно проверяем? Нормальный кусок кода
  4. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Короче. Правила обмена пишу, которые выгружают операции из 7.7 в 8.2.
    upload_2015-12-16_14-50-22.png
    Эта операция почему в выборку не попадает.
    Вот ее проводки
    upload_2015-12-16_14-51-22.png
    --- Объединение сообщений, 16 дек 2015 ---
    Это забалансовый счет. Не пойму почему он даже в выборку не попадает.
    Вот код ПВД
    Код:
    Сообщить("Начало выгрузки за период с " + ДатаНачала + " по " + ДатаОкончания);
    Операция = СоздатьОбъект("Операция");
    Операция.ВыбратьОперации(ДатаНачала, ДатаОкончания);
    Пока Операция.ПолучитьОперацию() = 1 Цикл
        Если (Операция.Документ.ПометкаУдаления() = 1) Тогда
            Продолжить;
        КонецЕсли;
        Проводки_Основной = СоздатьОбъект("ТаблицаЗначений");
        Проводки_Основной.НоваяКолонка("Период");
        Проводки_Основной.НоваяКолонка("СубконтоДт");
        Проводки_Основной.НоваяКолонка("СубконтоКт");
        Проводки_Основной.НоваяКолонка("ВалютаДт");
        Проводки_Основной.НоваяКолонка("ВалютаКт");
        Проводки_Основной.НоваяКолонка("НомерЖурнала");
        Проводки_Основной.НоваяКолонка("НомерСтрокиТЧ");
        Проводки_Основной.НоваяКолонка("Содержание");
        Проводки_Основной.НоваяКолонка("ВалютнаяСуммаДт");
        Проводки_Основной.НоваяКолонка("ВалютнаяСуммаКт");
        Проводки_Основной.НоваяКолонка("КоличествоДт");
        Проводки_Основной.НоваяКолонка("КоличествоКт");
        Проводки_Основной.НоваяКолонка("Сумма");
        Проводки_Основной.НоваяКолонка("Активность");
        Проводки_Основной.НоваяКолонка("СчетДт");
        Проводки_Основной.НоваяКолонка("СчетКт");
       
        //организуем перебор проводок текущей операции
        Операция.ВыбратьПроводки();
        Пока Операция.ПолучитьПроводку()=1 Цикл
            //проверим на активную проводку
            Если Операция.ВключитьПроводки()=0 Тогда
                Продолжить;
            КонецЕсли;
            //Если (Параметры.СписокНеПереносящихсяСчетов.НайтиЗначение(Операция.Дебет.Счет)>0) ИЛИ
            //    (Параметры.СписокНеПереносящихсяСчетов.НайтиЗначение(Операция.Кредит.Счет)>0) Тогда
            //    Продолжить;
            //КонецЕсли;
            Проводки_Основной.НоваяСтрока();
            Проводки_Основной.Период     = ПолучитьДатуV8(Операция.ДатаОперации, Операция.ПолучитьВремя());
            Проводки_Основной.СчетДт     = Операция.Дебет.Счет;
            Проводки_Основной.СубконтоДт = СоздатьОбъект("ТаблицаЗначений");
            Проводки_Основной.СубконтоДт.НоваяКолонка("Ключ");
            Проводки_Основной.СубконтоДт.НоваяКолонка("Значение");
            Для НомерСубконто = 1 по Проводки_Основной.СчетДт.КоличествоСубконто() Цикл
                Проводки_Основной.СубконтоДт.НоваяСтрока();
                Проводки_Основной.СубконтоДт.Ключ     = Проводки_Основной.СчетДт.ВидСубконто(НомерСубконто);
                Проводки_Основной.СубконтоДт.Значение = Операция.Дебет.Субконто(НомерСубконто);
            КонецЦикла;
           
            Проводки_Основной.СчетКт = Операция.Кредит.Счет;
            Проводки_Основной.СубконтоКт = СоздатьОбъект("ТаблицаЗначений");
            Проводки_Основной.СубконтоКт.НоваяКолонка("Ключ");
            Проводки_Основной.СубконтоКт.НоваяКолонка("Значение");
            Для НомерСубконто = 1 по Проводки_Основной.СчетКт.КоличествоСубконто() Цикл
                Проводки_Основной.СубконтоКт.НоваяСтрока();
                Проводки_Основной.СубконтоКт.Ключ     = Проводки_Основной.СчетКт.ВидСубконто(НомерСубконто);
                Проводки_Основной.СубконтоКт.Значение = Операция.Кредит.Субконто(НомерСубконто);
            КонецЦикла;
           
            Проводки_Основной.Сумма           = Операция.Сумма;
            Проводки_Основной.ВалютаДт        = Операция.Валюта;
            Проводки_Основной.ВалютаКт        = Операция.Валюта;
            Проводки_Основной.ВалютнаяСуммаДт = Операция.ВалСумма;
            Проводки_Основной.ВалютнаяСуммаКт = Операция.ВалСумма;
            Проводки_Основной.КоличествоДт    = Операция.Количество;
            Проводки_Основной.КоличествоКт    = Операция.Количество;
            Проводки_Основной.Активность      = 1;
            Проводки_Основной.Содержание      = Операция.СодержаниеПроводки;
        КонецЦикла;
       
        ВходящиеДанные = СоздатьОбъект("СписокЗначений");
        ВходящиеДанные.Установить("Дата"         , ПолучитьДатуV8(Операция.ДатаОперации, Операция.ПолучитьВремя()));
        ВходящиеДанные.Установить("СуммаОперации", Операция.СуммаОперации);
        ВходящиеДанные.Установить("Содержание"   , "Операция №" + Операция.Документ.НомерДок + " от " + Операция.ДатаОперации + ". " + Операция.Документ);
        ВходящиеДанные.Установить("Основной"     , Проводки_Основной);
        Если Проводки_Основной.КоличествоСтрок() = 0 Тогда
            Продолжить;
        КонецЕсли;
        ВыгрузитьПоПравилу(Операция.Документ, ,ВходящиеДанные, , "Операция");
    КонецЦикла;
  5. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    А кто сказал что он забалансовый? Признак могли не поставить или удалить в конфигураторе же он выставляется. Хотя да движения то без двойной записи.

    А отладчик что то говорит? Счет именно в коде 001?
  6. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Чето подзатупил. Нормально все.
  7. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Заинтриговал.. Нормально всё? Т.е. всё работало или всё же в чём то была загвоздка?
  8. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    На забалансовый проверяется так как я написал в первом сообщении, только нужно в скобки поставить :).
    Да, все попадает. Я тупил.

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