1c 6.0: Помогите разобраться с формулой

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

Статус темы:
Закрыта.
  1. glad

    glad Гость

    никак не пойму что значит допустим СП{3}.1
    в макроязыке находил похожее, но не то..
    вот формула:
    !П_ПОЛУЧАТЕЛЬ = ""+?(СТРДЛИНА(СП{3}.1)=0\""+СН{3}\""+СП{3}.1)+?(СТРДЛИНА(СП{3}.2)=0\""\", "+СП{3}.2)+": "+СП{3}.5+", "+СП{3}.3+", код банка "+СП{3}.4

    Никак не разберусь.. кажется что это Субконто.. но как это понимать не ясно..
    Помогите плз.

    Заранее благодарю!
     
  2. BorisM

    BorisM Гость

    Добрый день!

    Скорее всего, в этом примере, выбираются какие то данные из документа.
    Насколько я помню:
    СП{3} - означает что взять субконто из реквизита № 3 шапки документа.
    СП{|3} - означает взять субконто из третьего реквизита табличной части (|-вот эта вот черточка, типа признак табличной части).
    Еще у субконто есть "Параметры". В списке конкретного вида субконто есть внизу формы такая кнопка "Параметры". У каждого параметра есть номер. Параметры можно свободно удалять и добавлять во время работы системы.
    Так вот, запись вида СП{3}.1 - означает взять параметр № 1 из субконто, указанного в реквизите шапки № 3.

    Еще одна токность с параметрами субконто. Система никак не возражает против их удаления, но в базе они остаются! Было дело, наступал на эти грабли ;-) Т.е. смотришь в списке - ничего нет. А данные откуда то берутся! Если встретиться подобная ситуация, то достаточно какому либо субконто добавить параметр под нужным номером, и у остальных он тоже будет виден со всеми старыми значениями. Но у данного конкретного субконто оно затрется новым значением.

    Сорри, если много текста... Просто ностальгия :)
     
  3. glad

    glad Гость

    Спасибо огромное! Вроде как понял. :)
    а вот это:
    ?(СТРДЛИНА(СП{3}.1)=0\""+СН{3}\""+СП{3}.1)
    посмотрев в руководство по макроязыку я нашел такую конструкцию ?(условие|выражение1|выражение2), аналогичная конструкция есть в С++. немного по другому записывается, но все же..
    а в этой записи непонятно где операнды.. :)
     
  4. BorisM

    BorisM Гость

    Мануала под рукой нет, поэтому вспоминаю по памяти :)

    До первого слеша - это условие, если оно выполниться, выполняем то, что после первого слеша "\",
    если НЕ выполняется - то, что после второго слеша.

    Ну или по другому:

    ?(Условие\Делаем это, если истина\Делаем это, если ложь).
     
  5. glad

    glad Гость

    Спасибо большое!
     
  6. glad

    glad Гость

    Подскажите пожайлуста еще а то уже почти 2 дня мучаюсь.. Вот если СП{3}.1 это то что вы написали..
    то я беру вторую форму и вней пишу практически тоже самое, но в ответ получаю лишь пустую строку :( Может знаете в чем проблема..

    ЗЫ
    Мне бы просто сделать это задание и отвязаться от бухгалтеров хоть на чуть-чуть :)

    Да, и что значит СН{1|2} ? ;)
     
  7. BorisM

    BorisM Гость

    Трудно сказать, не видя формы. Но проверьте такие моменты: во первых, это значение нужно присвоить какому-то полю. Т.е. у нас должен быть реквизит, с номером больше чем 3. Пускай будет 4 :) И в колонке "Выр", напротив третьего! реквизита шапки, написать следующее:
    ЗН4=СП{3}.1 Теперь когда мы перейдем с третьего поля в четвертое, значение должно вычислиться.
    Еще может быть такое, что не совпадают типы значений.
    Можно попробовать вместо СП использовать СН. К сожалению, я уже не помню, чем они различаются. Хотел найти книжку на работе, но похоже она безвозратно утеряна. Еще дома посмотрю, может она там.
    Насчет выражения СН{1|2} - то тут память меня окончательно подвела, а в единственной базе, завалявшейся на компе с 98 года я такого выражения не нашел ;)
    И еще, можно поподробнее, что и откуда нужно вытащить, и для чего. Я попробую смоделировать у себя такую ситуацию. Может что-то и получиться :)
     
  8. glad

    glad Гость

    Пасиб. Буду думать. Извините, что долго не появлялся, просто загрузили так, что хоть убейся.. :)
     
  9. glad

    glad Гость

    Вот вопрос еще появился:
    1С6.0: Сделал документ на внутреннее перемещение.. вернее доработал то что было.. так вод там есть кнопочка проводки, как я посмотрел это дело работает и для других отчетов, тоесть меняю формулу формирования проводок в одном отчете, меняется и в другом. Вообщем сделал этот отчет взял 1sbcons и sttrn.gfr и переписал их поверх существующих,
    посмотрел вроде как нормально выводятся, но вот другие отчеты зависящие от этих формирований проводок просто не открывались.. тоесть сделаешь документ, откроются, а если сделал документ, перед изменением, то просто не открыватся.. почему? :)
     
  10. BorisM

    BorisM Гость

    Добрый день!
    Я так понимаю, речь идет о внешних отчетах. То что переписан файл sttrn.gfr, это в принципе нормально, если это новая версия старого отчета, то так и нужно. А вот замена 1sbcons.dbf - это плохо. Дело в том, что это очень хитрый файлик с хитрой структурой. В нем хранятся настройки документов, их проводки, параметры субконто и еще какие-то настройки. Если бухи не добавляли туда новых параметров субконто, или не добавлялись или не менялись формы/проводки документов, то может не все так страшно. Попробуй сделать полную реиндексацию базы. Удали все файлы *.CDX и запусти 1С в монопольном режиме. Но только сначала на ЛОКАЛЬНОЙ копии базы!!! Если все будет нормально, то тогда уже на рабочей... но все равно предварительно нужно сделать еще одну копию, на всякий случай. В нашем деле, как у хирургов, главное не навредить :)
     
  11. glad

    glad Гость

    Я все вернул к прежнему состоянию, тоесть заранее сохранил 1sbconf.dbf. Но как тогда перенести то что мне нужно на другую базу ? Потому как настройки проводок, ну тоесть формулы для проведения они "зашиты" (как показала практика <_< ) в 1sbconf'е. А как по-другому перенести ума не приложу.
    Если только не попробовать заменить и переиндексировать.. Но если Вы говорите, что это плохо - значит это плохо.
     
  12. glad

    glad Гость

    Ась? :angry:
     
Загрузка...
Статус темы:
Закрыта.

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