View previous topic :: View next topic |
Author |
Message |
SamS

Joined: 12 Jan 2002 Posts: 281 Location: Спиридонов С.А. Occupation: ПКП "БИСТ" Interests: Чистополь
|
Posted: 15 Mar 2005 09:50 Post subject: Групповые операции. Помогите чайнику |
|
|
Пытаюсь создать следующее:
А1=ДАТА0()
А2=ДАТА()
/*Даты при выполнении групповой операции не спрашивает. Со словом ВВОД помедитировал - не вышло...*/
ВВОД(("Введите дату проводок",А3,"Д"))
ВВОД(("Введите процент начислений",А4,"Ч","99"))
/*Здесь все вводится, но я не понимаю, зачем двойные скобки? */
ПОКА (СЧЕТ(Б2,"Введите счет") = 1)
ДОБАВИТЬ(Б1,Б2)
ВСЕ_ПОКА
/*Скопировал из хелпа. Написано, что по CTRL-F10 должно останавливаться - не останавливается */
ЦИКЛ Б1,Б2,Б3
ДОБАВИТЬ(В1,ДТКТ(Б2,70,А1,А2)
ВСЕ_ЦИКЛ
/*Здесь, вроде бы, что-то делает*/
ЦИКЛ В1,В2,В3
П(А3,"РЕЗЕРВ",Б1(В3),"96","Начисление резерва отпускных),В2*А4)
ВСЕ_ЦИКЛ
/*Ругается на непарные скобки.. Где, интересно?*/ _________________ Origin: 2:5049/97.3 |
|
Back to top |
|
 |
Лариса Т.
Joined: 05 Jul 2004 Posts: 247 Location: Тюрикова Л.А. Occupation: программист Interests: Ижевск
|
Posted: 15 Mar 2005 10:56 Post subject: |
|
|
Quote: |
П(А3,"РЕЗЕРВ",Б1(В3),"96","Начисление резерва отпускных),В2*А4)
|
П(А3,"РЕЗЕРВ",Б1(В3),"96","Начисление резерва отпускных",В2*А4) |
|
Back to top |
|
 |
SamS

Joined: 12 Jan 2002 Posts: 281 Location: Спиридонов С.А. Occupation: ПКП "БИСТ" Interests: Чистополь
|
Posted: 15 Mar 2005 11:43 Post subject: |
|
|
Спасибо Но это я при перепечатке ошибся. В оригинале - кавычки.
По остальным никто не поможет? А _________________ Origin: 2:5049/97.3 |
|
Back to top |
|
 |
Fan
Joined: 03 Sep 2002 Posts: 76 Location: Корзюков Николай
|
Posted: 15 Mar 2005 12:58 Post subject: Re: Групповые операции. Помогите чайнику |
|
|
[quote="SamS"]Пытаюсь создать следующее:
ВВОД(("Введите дату проводок",А3,"Д"))
ВВОД(("Введите процент начислений",А4,"Ч","99"))
/*Здесь все вводится, но я не понимаю, зачем двойные скобки? */
Внутри скобок может быть список:
ВВОД(("Введите дату проводок",А3,"Д"),;
("Введите процент начислений",А4,"Ч","99");
) |
|
Back to top |
|
 |
SamS

Joined: 12 Jan 2002 Posts: 281 Location: Спиридонов С.А. Occupation: ПКП "БИСТ" Interests: Чистополь
|
Posted: 15 Mar 2005 17:20 Post subject: |
|
|
Ау! Ну хоть пальцем ткните, где читать...
И про цикл с ДОБАВИТЬ, скопированный из хелпа - не работет ведь Ctrl-F10. Шо делать- _________________ Origin: 2:5049/97.3 |
|
Back to top |
|
 |
Fan
Joined: 03 Sep 2002 Posts: 76 Location: Корзюков Николай
|
Posted: 15 Mar 2005 17:37 Post subject: |
|
|
Об операторе
П(А3,"РЕЗЕРВ",Б1(В3),"96","Начисление резерва отпускных),В2*А4)
По моему, скобки д.б. квадратными: Б1[D3].
Цитата из хелпа:
"Если в цикле используется оператор ВЫВОД, прерывание может осуществляться только при помощи функции КЛАВИША()."
Может для отладки есть ВЫВОД?
Полный текст программы не помешал бы.....
Last edited by Fan on 15 Mar 2005 17:40; edited 1 time in total |
|
Back to top |
|
 |
Elena
Joined: 06 Jun 2002 Posts: 504 Location: Пучнина Елена Ивановна Occupation: Компания БЭСТ Interests: г.Москва
|
Posted: 15 Mar 2005 17:37 Post subject: |
|
|
Можно получить полный текст групповой операци |
|
Back to top |
|
 |
SamS

Joined: 12 Jan 2002 Posts: 281 Location: Спиридонов С.А. Occupation: ПКП "БИСТ" Interests: Чистополь
|
Posted: 15 Mar 2005 18:05 Post subject: |
|
|
А как его вывести в куда-нибудь?  _________________ Origin: 2:5049/97.3 |
|
Back to top |
|
 |
Fan
Joined: 03 Sep 2002 Posts: 76 Location: Корзюков Николай
|
Posted: 15 Mar 2005 18:13 Post subject: |
|
|
Сначала F9, потом F2 для вывода в текстовый файл. |
|
Back to top |
|
 |
SamS

Joined: 12 Jan 2002 Posts: 281 Location: Спиридонов С.А. Occupation: ПКП "БИСТ" Interests: Чистополь
|
Posted: 15 Mar 2005 18:53 Post subject: |
|
|
Ага, сделал
Code: |
А1="01/01/05"
А2="31/01/05"
ВВОД(("Введите дату проводок",А3,"Д"))
ВВОД(("Введите % отчислений:",А4,"Ч","99"))
Г1={70,6911,6912,6921,6922,6923,6931,6932}
ДЛЯ А5=1,4,1
СЧЕТ(Б2, "Добавьте счет")
ДОБАВИТЬ(Б1,Б2)
ВСЕ_ДЛЯ
ЦИКЛ Б1,Б2,Б3
ДОБАВИТЬ(В1,0)
ЦИКЛ Г1,Г2,Г3
В1[Б3]=В1[Б3]+ДТКТ(Б2,Г2,А1,А2)
ВСЕ_ЦИКЛ
ВСЕ_ЦИКЛ
ЦИКЛ В1,В2,В3
П(А3,"РЕЗЕРВ",Б1[В3],"96","Начисление резерва отпускных",В2*А4/100)
ВСЕ_ЦИКЛ
|
Что не работает:
1. Дату хочется, чтобы спрашивал, т.е. А1, А2 вводить с экрана. Просто ВВОД нарисовать или как-то с ДАТА(), ДАТА0() надо поиграться?
2. Переменную Б2 список сейчас набираем из 4 значений, хотелось бы - на выбор пользователя, но пример из хелпа по Ctrl-F10 не останавливается.
3. Вложенный цикл не работает. Если выбирать только по одному кредиту (70 счет, например) - работает. Вложенный по всем 70 и 69 - не хоче _________________ Origin: 2:5049/97.3 |
|
Back to top |
|
 |
Fan
Joined: 03 Sep 2002 Posts: 76 Location: Корзюков Николай
|
Posted: 16 Mar 2005 12:23 Post subject: |
|
|
1. Я бы сделал так:
А1=ДАТА()
А2=ДАТА()
А3=ДАТА()
ВВОД(("Введите дату начала расчета",А1,"Д"),;
("Введите дату конца расчета",А2,"Д"),;
("Введите дату проводок",А3,"Д"),;
("Введите процент начислений",А4,"Ч","99");
)
Если дата конца расчета совпадает с датой проводок, то один оператор можно исключить.
2. Во вложенном списке, как я понимаю, счета затрат вводятся? Этож надо еще и последовательность соблюсти ;( Ошибки оператора возможны...
Список можно задать в начале программы. Абсолютно универсальных программ не бывает :0)
Что касается вложенных циклов, у меня тоже были проблемы... Делаю пока без них.
Нужно ли хранить промежуточные результаты до конца подпрограммы (потом все равно пропадут)? Если НЕТ, то два цикла - лишние.
3. Номер счета это строка символов, а не число. Я бы определил список:
Г1{"70(и еще 8 пробелов, если счет 10 разрядов)","6911(и 6 пробелов)", и т.д.}
4. Перед формированием проводок сумму лучше округлить заранее. Иначе возможны проблемы при закрытии периода в АрмеГБ. |
|
Back to top |
|
 |
SamS

Joined: 12 Jan 2002 Posts: 281 Location: Спиридонов С.А. Occupation: ПКП "БИСТ" Interests: Чистополь
|
Posted: 16 Mar 2005 19:58 Post subject: |
|
|
Спасибо, почти все получилось
Работающий вариант:
Code: |
А1=ДАТА()
А2=ДАТА()
ВВОД(("Введите дату начала месяца",А1,"Д"),;
("Введите дату окончания месяца",А2,"Д"),;
("Введите % отчислений:",А4,"Ч","99"))
Г1={"70","6911","6912","6921","6922","6923","6931","6932"}
ДЛЯ А5=1,3,1
СЧЕТ(Б2, "Добавьте счет затрат по оплате труда")
ДОБАВИТЬ(Б1,Б2)
ВСЕ_ДЛЯ
ЦИКЛ Б1,Б2,Б3
ДОБАВИТЬ(В1,0)
ЦИКЛ Г1,Г2,Г3
В1[Б3]=В1[Б3]+ДТКТ(Б2,Г2,А1,А2)
ВСЕ_ЦИКЛ
ВСЕ_ЦИКЛ
ЦИКЛ В1,В2,В3
П(А2,"РЕЗЕРВ",Б1[В3],"96","Начисление резерва отпускных",В2*А4/100)
ВСЕ_ЦИКЛ
|
В хелпе, кстати, пример со список счетов дан без кавычек - не работало, пока у Г1 кавычке не поставил.
Я правильно понимаю, что по умолчанию округляет до 2 знаков? По крайней мере в хелпе так написано... Или не верить?
Осталась одна проблема - как добавлять не 3 счета затрат, как в примере, а сколько угодно (не работает Ctrl-F10)? _________________ Origin: 2:5049/97.3 |
|
Back to top |
|
 |
Fan
Joined: 03 Sep 2002 Posts: 76 Location: Корзюков Николай
|
Posted: 16 Mar 2005 21:31 Post subject: |
|
|
БЭСТ считает до трех знаков после запятой и даже в main.dbf суммы с тремя знаками.
Поскольку в формуле есть деление, лучше округлить насильно :0) |
|
Back to top |
|
 |
GAL
Joined: 23 Apr 2002 Posts: 344 Location: Лопухова Галина Анатольевна Occupation: Компания БЭСТ Interests: Москва
|
Posted: 17 Mar 2005 20:03 Post subject: |
|
|
SamS wrote: | В хелпе, кстати, пример со список счетов дан без кавычек - не работало, пока у Г1 кавычке не поставил.
|
Можно поискать в описаниях к версиям, там было написано.
SamS wrote: |
Осталась одна проблема - как добавлять не 3 счета затрат, как в примере, а сколько угодно (не работает Ctrl-F10)? |
В ХЭЛПЕ написано следующее:
Прерывание работы цикла может быть произведено:
- По клавише ESC , если работа цикла требует подтверждения
следующего запуска цикла. Например:
ПОКА (СЧЕТ(А1, "Введите счет") = 1)
... действия ...
ВСЕ_ПОКА
В данном случае выход из цикла осуществляется нажатием
клавиши ESC в ответ на запрос: "Введите счет".
- По сочетанию клавиш Ctrl-F10 , если работа цикла не требует
подтверждения на продолжение работы . Например:
СЧЕТ(А1, "Определите счет")
ПОКА (ШАУ(А1) = 1)
... действия ...
ВСЕ_ПОКА
Т.е. по Ctrl-F10 можно выйти из цикла
ПОКА (СЧЕТ( А1 ) = 1)
... действия ...
ВСЕ_ПОКА
И еще. Я бы не стала "перегружать" конструкции, и вынесла бы вычиление процента от суммы из функции "проводка".
И цикл в цикле тоже работает. |
|
Back to top |
|
 |
Fan
Joined: 03 Sep 2002 Posts: 76 Location: Корзюков Николай
|
Posted: 18 Mar 2005 12:19 Post subject: |
|
|
GAL писала:
И еще. Я бы не стала "перегружать" конструкции, и вынесла бы вычиление процента от суммы из функции "проводка".
От себя добавлю "масла масляного" в эту рекомендацию:
Округлите это вычисление.
У меня оператор ввела новую проводку в амортизацию ОС. Вылезла копейка в оборотках. Замучился округлять вручную.
Не "подстелишь соломки" - сюда и упадешь :0) |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © phpBB Group
|