[РЕШЕНО] Сравнение субконто счетов

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

  1. TopicStarter Overlay
    eViLL
    Offline

    eViLL Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    264
    Симпатии:
    2
    Баллы:
    29
    Добрый день!
    А как программно сравнить типы субконто двух счетов? Для переноса остатков между счетами мне нужно убедиться что у них одинаковые субконто. Допустим, есть СчетДонор и СчетПриемник. Можно ли сравнить количество субконто у этих счетов?
  2. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Конечно. Смотрите СП по теме ПланСчетовВидыСубконто.
    У счета есть свойство "ВидыСубконто" как раз типа данных указанного выше.
    eViLL нравится это.
  3. TopicStarter Overlay
    eViLL
    Offline

    eViLL Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    264
    Симпатии:
    2
    Баллы:
    29
    Сравнил количество

    Если СчетДонор.ВидыСубконто.Количество() <> СчетПриемник.ВидыСубконто.Количество() Тогда
    Сообщить("Количество субконто счетов переноса различается");
    Возврат;
    КонецЕсли;

    А как теперь типы сравнить?
  4. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Тип(Субконто1) = Тип(Субконто2) либо ТипЗнч(ВашеСубконто) = Тип(Справочник.Номенклатура)
    eViLL нравится это.
  5. TopicStarter Overlay
    eViLL
    Offline

    eViLL Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    264
    Симпатии:
    2
    Баллы:
    29
    Код:
    Для Субконто = 0 По СчетДонор.ВидыСубконто.Количество()-1 Цикл
            Если Тип(СчетДонор.ВидыСубконто[Субконто]) <> Тип(СчетПриемник.ВидыСубконто[Субконто]) Тогда
                Сообщить("Субконто счетов переноса различаются");
                Возврат;
            КонецЕсли;
        КонецЦикла;
    
    не отрабатывает ((
  6. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Так конечно не будет отрабатывать. Необязательно что первые элементы субконто совпадают.
    --- Объединение сообщений, 16 апр 2014 ---
    Да и зачем такой изврат ?
    --- Объединение сообщений, 16 апр 2014 ---
    Вы в СП читали описание этой функции ???
    eViLL нравится это.
  7. TopicStarter Overlay
    eViLL
    Offline

    eViLL Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    264
    Симпатии:
    2
    Баллы:
    29
    Код:
    Для Субконто = 0 По СчетДонор.ВидыСубконто.Количество()-1 Цикл
            Если СчетДонор.ВидыСубконто[Субконто].ВидСубконто <> СчетПриемник.ВидыСубконто[Субконто].ВидСубконто Тогда
                Сообщить("Субконто счетов переноса различаются");
                Возврат;
            КонецЕсли;
        КонецЦикла;
    
    Ну вот так работает. А ведь действительно, если субкотно будут одинаковые но в разном порядке чё делать? :\
  8. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Элементы двумерного массива сравнивали ?
    eViLL нравится это.
  9. TopicStarter Overlay
    eViLL
    Offline

    eViLL Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    264
    Симпатии:
    2
    Баллы:
    29
    нет
  10. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Подсказка вам - два вложенных цикла. Первый перебирает первый ряд и сравнивает с элементами второго.
    eViLL нравится это.
  11. TopicStarter Overlay
    eViLL
    Offline

    eViLL Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    264
    Симпатии:
    2
    Баллы:
    29
    Я понял о чем вы, я никак не придумаю условие внутри этих циклов. Как его задать чтобы ошибка была если только какому-то субконто одного счета не найдено соответствие в другом.
  12. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Флаг какой-нибудь выставляйте в конце цикла, и проверяйте при следующей итерации.
    eViLL нравится это.
  13. TopicStarter Overlay
    eViLL
    Offline

    eViLL Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    264
    Симпатии:
    2
    Баллы:
    29
    Код:
    й=0;
        Для СубконтоДонора = 0 По СчетДонор.ВидыСубконто.Количество()-1 Цикл
            Для СубконтоПриемника = 0 По СчетПриемник.ВидыСубконто.Количество()-1 Цикл
                Если СчетДонор.ВидыСубконто[СубконтоДонора].ВидСубконто = СчетПриемник.ВидыСубконто[СубконтоПриемника].ВидСубконто Тогда
                    й=1
                КонецЕсли;           
            КонецЦикла;
            Если й=0 тогда
                Сообщить("Субконто счетов переноса различаются");
                Возврат;
            КонецЕсли;
            й=0;
        КонецЦикла;
    
    Вот такая штука родилась. Вроде работает. Спасибо большое за помощь!
  14. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Всегда пожалуйста :)
Похожие темы
  1. isop
    Ответов:
    2
    Просмотров:
    963
  2. Pogroleg
    Ответов:
    2
    Просмотров:
    6.196
  3. denirena
    Ответов:
    0
    Просмотров:
    1.193
  4. бухг123
    Ответов:
    22
    Просмотров:
    3.257
  5. bluntschi
    Ответов:
    7
    Просмотров:
    528
Загрузка...

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