7.7 Немного оптимизировать код, при работе субсчетами

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

  1. TopicStarter Overlay
    rusavus
    Offline

    rusavus

    Регистрация:
    25 окт 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Доброе утро, помогите немного оптимизировать код:

    Код:
    Функция ДоступКСчетам(Счет)
    Если (Счет = СчетПоКоду("41")) ИЛИ (Счет = СчетПоКоду("44.1.2")) ...
    (Счет = СчетПоКоду("62)) ИЛИ ...
    Тогда
    Возврат 1;
    Иначе
    Возврат 0;
    КонецЕсли;
    КонецФункции
    Необходимо, через параметр функции передавать счет бу (который может быть субсчетом) и сравнивать с доступными счетами(описаны программно).
    Можно конечно, через ИЛИ описать все субсчета у счета, но хотелось это сделать более красивее и рациональнее.
    Посоветуйте пожалуйста, как это сделать.
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    НайтиПоКоду(<КодСчета>)

    Выполняет поиск счета в плане счетов по коду счета.
    Возвращает: 1 - счет найден; 0 - счет не найден.
  3. Aston
    Offline

    Aston Опытный в 1С

    Регистрация:
    6 июн 2012
    Сообщения:
    467
    Симпатии:
    3
    Баллы:
    29
    У счета есть свойство родитель, сделайте проверку если Счет.Родитель = СчетпоКоду("41") Тогда
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    ЗАЧЕМ? Итак все найдет если есть. В вопросе сказано что МОЖЕТ быть субсчетом.
  5. Aston
    Offline

    Aston Опытный в 1С

    Регистрация:
    6 июн 2012
    Сообщения:
    467
    Симпатии:
    3
    Баллы:
    29
    Я писал когда ты ещё не написал но запись вылезла после того как ты написал.
  6. TopicStarter Overlay
    rusavus
    Offline

    rusavus

    Регистрация:
    25 окт 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    я не совсем наверно понял, т.к. ничего не выходит...

    счет - выбирается на форме отчета из плана счетов.

    Код:
    Функция ДоступКСчетам(Счет)
    Счет = Строка(Счет);
    Сч = СоздатьОбъект("Счет.Основной");
    
    Если (Сч.НайтиПоКоду(Счет) = Сч.НайтиПоКоду("41")) ИЛИ (Сч.НайтиПоКоду(Счет) = Сч.НайтиПоКоду("62"))
    Тогда
    Возврат 1;
    Иначе
    Возврат 0;
    КонецЕсли;
    КонецФункции
    
  7. Aston
    Offline

    Aston Опытный в 1С

    Регистрация:
    6 июн 2012
    Сообщения:
    467
    Симпатии:
    3
    Баллы:
    29
    Счет41 = Сч.НайтиПоКоду("41");
    Счет62 = Сч.НайтиПоКоду("62");

    Если (Сч.НайтиПоКоду(Счет) = Счет41 ИЛИ
    Сч.НайтиПоКоду(Счет).Родитель = Счет41
  8. Vlad
    Offline

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

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Aston, не понял, это что за цветовая гамма?
  9. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    В данном случае вообще можно использовать конструкцию:
    Код:
    Функция ДоступКСчетам(Счет)
    Возврат ?(Найти(Счет,"41")+Найти(Счет,"62")<>0,1,0)
    КонецФункции
    
  10. TopicStarter Overlay
    rusavus
    Offline

    rusavus

    Регистрация:
    25 окт 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Всем спасибо за помощь!
  11. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
  12. Aston
    Offline

    Aston Опытный в 1С

    Регистрация:
    6 июн 2012
    Сообщения:
    467
    Симпатии:
    3
    Баллы:
    29
    Скопировал код с прошлой статьи и решил переделать вот и получилось краснота :)
  13. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Лень - двигатель прогресса))
  14. Aston
    Offline

    Aston Опытный в 1С

    Регистрация:
    6 июн 2012
    Сообщения:
    467
    Симпатии:
    3
    Баллы:
    29
    Ага иногда бывает, главное чтобы она была разумной :)
Похожие темы
  1. BabySG
    Ответов:
    6
    Просмотров:
    1.780
  2. Amasonka
    Ответов:
    1
    Просмотров:
    1.283
  3. BabySG
    Ответов:
    39
    Просмотров:
    3.341
  4. SerzhM
    Ответов:
    6
    Просмотров:
    855
Загрузка...

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