Вход | Регистрация


1С:Предприятие ::

Метки:

Алгоритмы для модулей 1С?

Я
   Wow__cooL
03.02.04 - 17:48
Мне надо создать алгоритм документа (а именно Договоры), но как создавать алгоритм для 1С? (затруднение вызывает в частности Расшифровка, Меню.ДобавитьЗначение) - какими блоками все это делать?

Вобщем вопрос по документированию. Может есть какая ссылка куда-нибудь... Просто сложно представить, какими именно блоками рисовать все операции...
 
  Рекламное место пустует
   Волшебник
 
1 - 03.02.04 - 18:05
Уважаемые, кто-нибудь чего-нибудь понял?
   Рупор абсурда
 
2 - 03.02.04 - 18:10
Я всё понял!
   skunk
 
3 - 03.02.04 - 18:20
(2)ну так надо ответить, не ты ли искал сложные вопросы
   Рупор абсурда
 
4 - 03.02.04 - 18:24
(3) Ага! Я как раз сейчас и пишу подробнейший ответ ...
   skunk
 
5 - 03.02.04 - 18:27
ждемс
   Рупор абсурда
 
6 - 03.02.04 - 18:29
Интересно, а Вау_куЛ'е ответ ещё нужен?
Лениво зря потеть так ...
   skunk
 
7 - 03.02.04 - 18:39
жди ответа......
   Bzzzzz
 
8 - 03.02.04 - 18:41
А чего ждать то?
Если наваял - так выкладывай :-)
Бум благодарны. Пригодится.
   Рупор абсурда
 
9 - 03.02.04 - 18:42
(8) Дай хоть главу очередную дописать ...
   Bzzzzz
 
10 - 03.02.04 - 18:45
(9) Ладно. Уболтал , чёрт языкастый :-)
Бета-версия к завтрУ появится?
 
 
   Рупор абсурда
 
11 - 03.02.04 - 18:47
(10) Не бета-версия, а первое издание ...
   Wow__cooL
12 - 03.02.04 - 21:42
Эй, народ, мне вобще-то книга целая не нужна...
   Wow__cooL
13 - 03.02.04 - 21:42
Хотя почему бы и нет...
   Wow__cooL
14 - 03.02.04 - 21:44
Ладно, раз непонятно, попытаюсь задать вопрос еще раз:
наверно, каждый из вас хоть раз в жизни (если вы программеры или что-то подобное) составляли блок-схему по программе. Так ведь? Вот, а мне нужен совет, как составить эту самую блок-схему по модулю 1С - там нет привычных мне блоков вычисления, присвоения - т.п.

Ну как понятно??
   Таня
 
15 - 03.02.04 - 21:55
Ничего если я вырезки из ЖКК приведу?
Никто ругаться не будет?
Встроенный язык (далее по тексту — язык) представляет собой предметно-ориентированный язык программирования, специально разработанный с учетом возможности его применения не только профессиональными программистами. В частности, все операторы языка имеют как русское, так и англоязычное написание, которые можно использовать одновременно в одном исходном тексте.

язык обладает некоторыми объектно-ориентированными возможностями, например, правила доступа к атрибутам и методам специализированных типов данных (документам, справочникам и т.п.) подобны свойствам и методам объектов, используемых в других объектно-ориентированных языках. Однако специализированные типы данных не могут определяться средствами самого языка, а задаются в визуальном режиме конфигуратора.
Типизация переменных в языке не жесткая, т.е. тип переменной определяется ее значением. Переменные не обязательно объявлять в явном виде. Неявным определением переменной является ее первое упоминание в левой части оператора присваивания. Возможно также явное объявление переменных при помощи соответствующего оператора. Допускается применение массивов.

Что такое программный модуль?
Программные модули в конфигурации системы 1C Предприятие не являются самостоятельными программами в общепринятом понимании этого слова, поскольку они являются только частью всей конфигурации задачи. Программный модуль — это своего рода "контейнер" для размещения текстов процедур и функций, вызываемых системой во время исполнения задачи в определенные моменты работы. Поэтому программный модуль не имеет формальных границ своего описания типа: "Начало модуля" — "Конец модуля".
Место размещения конкретного программного модуля (тот самый "контейнер") предоставляется конфигуратором в тех точках конфигурации задачи, которые требуют описания специфических алгоритмов функционирования. Эти алгоритмы следует оформлять в виде процедур или функций, которые будут вызваны самой системой в заранее предусмотренных ситуациях (например, при нажатии кнопки в диалоговом окне).
Каждый отдельный программный модуль воспринимается системой как единое целое, поэтому все процедуры и функции программного модуля выполняются в едином контексте.
Контекст выполнения программного модуля
Каждый программный модуль связан с остальной частью конфигурации задачи. Эта связь называется контекстом выполнения модуля. Следует различать два вида контекста:
• глобальный контекст задачи;
• локальный контекст выполнения конкретного модуля.
Глобальный контекст образуется:
• значениями системных атрибутов, системными процедурами и функциями;
• значениями заданных в конфигураторе констант, перечислений, регистров, видов расчета, групп видов расчета',
• переменными, процедурами и функциями глобального программного
модуля, объявленными с ключевым словом Экспорт.
Глобальный контекст виден всем программным модулям и определяет общую языковую среду конфигурации.

Локальный контекст модуля образуется тем конкретным местом конфигурации задачи, для которого использован программный модуль. Локальный контекст виден только конкретному программному модулю и определяет для модуля набор непосредственно доступных модулю значений агрегатных типов данных, их атрибутов и методов (см. «Виды программных модулей»). Однако, контекст модуля можно передать как объект в виде параметра при вызове процедур и функций (см. «Передача локального контекста программного модуля в качестве параметра»). Кроме того, контекст модуля определяет тот набор методов, которые доступны только в данном контексте (см. «Атрибуты и методы контекста Модуля формы», «Методы контекста Модуля формы элемента справочника» и т.п.). Локальный контекст предназначен для того, чтобы дать возможность управлять частными аспектами поведения задачи, присущими данному модулю.

Структура программного модуля
Структуру программного модуля можно подразделить на следующие разделы:
•    раздел определения переменных;
•    раздел процедур и функций;
•    раздел основной программы.
В конкретном программном модуле любой из разделов может отсутствовать.
Раздел определения переменных размещается от начала текста модуля до первого оператора Процедура или опе-ратора Функция или любого исполняемого оператора. В этом разделе могут находиться только операторы объявления переменных Перем.
Раздел процедур и функций размещается от первого оператора Процедура или оператора Функция до любого ис-полняемого оператора вне тела описания процедур или функций.
Раздел основной программы размещается от первого исполняемого оператора вне тела процедур или функций до конца модуля. В этом разделе могут находиться только исполняемые операторы. Раздел основной программы исполняется в момент запуска модуля на выполнение (см. “Виды программных модулей”). Обычно в разделе основной программы имеет смысл размещать операторы инициализации переменных какими-либо конкретными значениями, которые необходимо провести до первого вызова любой из процедур или функций модуля.

Наверно достаточно.
   Wow__cooL
16 - 03.02.04 - 22:01
(15) спасибо, конечно, но это совсем не то, что надо.

Я говорю не об определениях (что такое модуль, функции и т.д.), а  о том, как рисовать блок-схему для модуля 1С...


________

Меня никто не понимает...
   Таня
 
17 - 03.02.04 - 22:20
Не знаю, я только в 1С "умею", никаких блок-схем никогда не рисовала. Просто знаю, что в самом начала всегда задаются имена переменных, потом если есть функции, потому как они могут быть использованы в процедурах, и процедуры, которые тоже могут быть использованы в других процедурах, если их после написать, то они "не ищутся". а потом к каждому элементу диалога придумываю что они делать должны и пишу это в процедурах. Ну вообщем я еще не могу сформулировать правильно. Ладно, может кто-то кто рисует блок-схемы поможет.
   GrayT
 
18 - 03.02.04 - 22:20
Привычной блок схемы ты Всего модуля не получишь - там ведь события фактически отрабатываются (предопределенные процедуры). А вот блок схему отдельной процедуры  - пожалста.
   GrayT
 
19 - 03.02.04 - 22:28
(17)-Иногда приходится :(
   Wow__cooL
20 - 03.02.04 - 22:28
(18) В том то и дело, что рисовать блок-схемы в 1С для меня не привычно... Например, идет событие: установка Расшифровка для Карточки счета (в какие поля какие значения заносятся), и каким образом для нее можно создать блок - схему?

(18) не откажусь от блок-схемы отдельной процедуры - мне ведь и надо каждую процедуру и функцию по отдельности расписать
   GrayT
 
21 - 03.02.04 - 22:52
Вот теперь я точно не понял. Так какие проблемы?
   Wow__cooL
22 - 03.02.04 - 23:01
(21) я знаю, как можно составить алгоритм для программы с какими-либо вычислениями, но как создать блок-схему для 1С - это для меня сложно.

"А вот блок схему отдельной процедуры  - пожалста. " - а пример есть? мне надо определить, блоки какой формы необходимо использовать.

Ну как, понятно?
   GrayT
 
23 - 03.02.04 - 23:08
Нет. То ли поздно, то ли пива много, то ли я глупею.
Те блоки, которые тебя интересуют."...какими-либо вычислениями, но как создать блок-схему для 1С..." - что сразу для всей?
   Wow__cooL
24 - 03.02.04 - 23:13
(23) :))
ну, конечно нет. Для отдельных процедур и функций в модуле справочника Договора (это я на всякий случай уточняю справочник).

."...какими-либо вычислениями, но как создать блок-схему для 1С..."- имеется ввиду, что вобще для модулей объектов 1С.

Ведь есть ГОСТ, по которому рисуются все эти схемы. Вот, используя эти обозначения и необходимо создать блок-схему.

Во, кажется, знаю, как еще проще объяснить:
Мы изучаем 1С на уроках, на одной практической мы работали с этим справочником (в смысле Договора), а преподаватель, чтобы проверить, насколько хорошо мы поняли смысл данного справочника, сказал: А сделайте- ка вы мне блок-схему по этому модулю: распишите все процедуры и функции.

Вот...
   GrayT
 
25 - 03.02.04 - 23:27
Погоди, щас прокашляюсь.
А где у нас тАк учать. В справочнике "договору" всего четыре формы (форма элемента, форма группы, и две формы списков - это я то же так на всякий случай). К каждой форме по модулю. Так какой нужен. Глупость Ваш препод требует. Но что делать такова жизнь.
   Wow__cooL
26 - 03.02.04 - 23:31
(25) Да вобщем препод не такой уж и глупый, но бывает... :)))
А используется конкретно тот модуль, где есть кнопка Путеводитель (по моему, это форма списка, кнопка для открытия Карточки по счету (с 3 возможными счетами)). То есть, что нужно преподу: нужно описать каждую процедуру так, чтобы любой дурак понял, что она делает...
   Wow__cooL
27 - 03.02.04 - 23:33
"Распечатайте модуль формы списка Справочника Договоры и объясните программу" - это у нас такое задание по методичке...
   GrayT
 
28 - 03.02.04 - 23:34
Надеюсь ни кто из мэтров это читать не будет :(
Итак. Модуль формы элемента. Блок схема начинается с овала с натписью Начало. Дальше ресуешь ромб с выборами "Ввод нового" и "открытие существующего" Описываешь что делают соответствующие процедуры. После этого рисуешь параллепипед (ввод данных) с отработкой событий пользователя - смотришь куда может ткнуть пользователь и что потом произойдет и зацикливаешь - о'ля очередь событий. По кнопкам ОК Закрыть вылетаешь на овал КОНЕЦ. Хотя вАшего препода это может и не удовлетворить. Возможно имелось ввиду что то совсем другое.
Боже храни меня
   GrayT
 
29 - 03.02.04 - 23:36
....млин, чуть не сорвался. Так блок-схему или объесните программу!!!
   GoldMax
 
30 - 03.02.04 - 23:37
Спасибо за интересную задачу. К сожалению ответа на нее не имею.

Но в качестве тренировки подкину еще одну не менее интересную задачу.

Очень сильно хочется узнать внутренний механизм работы объекта "БухгалтерскиеИтоги". Последнее время все чаще и чаще приходится делать различные отчеты с использованием данного объекта. Отчеты получаются, а механизм работы объекта понять никак не могу. Надеюсь, что когда узнаю как этот объект работает изнутри, то смогу посотроить любой необходимый отчет гораздо быстрее и проще.
   GrayT
 
31 - 03.02.04 - 23:40
Спасибо за интересную задачу. К сожалению ответа на нее не имею.
   Wow__cooL
32 - 03.02.04 - 23:40
(28) О! ДА! Именно это и надо! "Так блок-схему или объесните программу!!! " - имеется ввиду объясните прогу блок-схемой.

Вот все эти выводы, ромбы и параллепипеды мне и нужны. Вот только такой вопрос: как это сделать для Расшифровки

Процедура ОСВпоСчету()
    
    Меню = СоздатьОбъект("СписокЗначений");
    Меню.ДобавитьЗначение("60", "счет 60");
    Меню.ДобавитьЗначение("62", "счет 62");
    Меню.ДобавитьЗначение("76.5", "счет 76.5");

    КодСчета = "";
    Если Меню.ВыбратьЗначение(КодСчета,,,,1) = 1 Тогда
        Расшифровка = СоздатьОбъект("СписокЗначений");
        Расшифровка.Установить("Отчет", "ОборотноСальдоваяВедомостьПоСчету");
        Расшифровка.Установить("Счет", СчетПоКоду(КодСчета));
        Расшифровка.Установить("Дата1", НачМесяца(РабочаяДата()));
        Расшифровка.Установить("Дата2", КонМесяца(РабочаяДата()));
        Расшифровка.Установить("ДанныеПоСубсчетам", 1);
        Расшифровка.Установить("ВидСубконто1", ВидыСубконто.Контрагенты);
        Расшифровка.Установить("Субконто1", ТекущийЭлемент().Владелец);
        Расшифровка.Установить("ОтборСубконто1", 2);
        Расшифровка.Установить("ПоГруппам1", 0);
        Расшифровка.Установить("ВидСубконто2", ВидыСубконто.Договоры);
        Если ТекущийЭлемент().Выбран() = 1 Тогда
            Расшифровка.Установить("Субконто2", ТекущийЭлемент());
            Если ТекущийЭлемент().ЭтоГруппа() = 1 Тогда
                Расшифровка.Установить("ПоГруппам2", 1);
                Расшифровка.Установить("ОтборСубконто2", 1);
            Иначе
                Расшифровка.Установить("ПоГруппам2", 0);
                Расшифровка.Установить("ОтборСубконто2", 2);
            КонецЕсли;
        КонецЕсли;

        глРасшифровка = Расшифровка;
        глОбновить = 2;
        глТаблица = "";
        глФлагРасшифровки = 1;
        ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету");
        глФлагРасшифровки = 0;
        глОбновить = 0;
    КонецЕсли;
    
КонецПроцедуры// ОСВпоСчету()



Вот для этой процедуры я затрудняюсь сделать эту уже надоевшую мне блок-схему...
   GrayT
 
33 - 03.02.04 - 23:47
Прямоуголники - присвоение значений. А то что присваеваешь списку значений и что с ним будет дальше ни твоя проблема, ромбы на if-ах
Открыть форму прямоугольник с двумя полосками по бокам (вроде так отображается вызов внешней процедуры).
 
 
   GrayT
 
34 - 03.02.04 - 23:49
А описать работу формы. Там всего штук 8 процедур - опиши в каких случайх они вызываются и все.


Ураааа. бессоница прошла .
   Wow__cooL
35 - 03.02.04 - 23:52
GrayT спасибо большое. Постараюсь к завтрашнему дню сделать эту схемку и сдать-таки ее преподу. Надеюсь, все пройдет нормально...

______

Не молчите, и да будете услышаны
Услышьте, и молчание не будет вам ответом
   GrayT
 
36 - 03.02.04 - 23:59
Пжлста
Ты не ответил на вопрос - где учишься? если конечно не тайна
   Wow__cooL
37 - 04.02.04 - 00:00
не тайна, совсем даже: В Ульяновском Авиационном Колледже на программиста
   GrayT
 
38 - 04.02.04 - 00:05
Удачи, в Вашем нелегком труде :)
   Wow__cooL
39 - 04.02.04 - 00:06
Благодарю :))
   Посторонний
40 - 04.02.04 - 04:19
Блок схемы для написания алгоритома работы программы в виде прямоугольников ромбов паралелограммов квадратов испрользуются все реже и реже. Для изображения функциональных и объектных схем (косается не только ПО но и любых процессов) испоьлзуются специальные языки диаграмм (UML например). Итогом всего что сдесь обсуждаль долно быть быстрое взаимопонимание двух или нескольких собеседников (и наверное обсуждение сути вашей программы ее прекрасных качеств, выявление и устранение недостатков). Поэтому Вам (если вы не владеете специальными языками диаграмм)скорее всего не хватает каких либо изображение (квадратов ромбов) сождайте их и опишите как вы их понимаете и как используете. И если вас захотят понять??? обязательно поймут.
   BorisG
41 - 04.02.04 - 08:01
"опишите как вы их понимаете и как используете"
А никогда не задумывался, что на сие существуют стандарты... и соответствущие редакторы?
   Wow__cooL
42 - 04.02.04 - 21:00
(40) мы и сами очень редко теперь уже используем всякие блок-схемы, но раз дали такое задание, значит, надо сделать...

А GrayT еще раз спасибо - сегодня сдала этот отчет, наконец-то. Так что все нормально!

(40) существует ГОСТ 19.701-90 - там все эти схемы описаны, поэтому не кажется ли вам странным выдумывать свои описания?
   GrayT
 
43 - 04.02.04 - 21:26
Жаль что Посторонний прошел мимо. Я про UML ни чего не слышал.
(42) Эт хорошо. А гост то от 90г, устарел однако. Хотя иногда я все еще рисую квадратики и ромбики, но бывает это достаточно редко - какийнить "хитрые" алгоритмы. А с другой стороны вопросы документирования и изучения конфигураций с применением графических средств меня интересуют
   Wow__cooL
44 - 04.02.04 - 21:29
скорее модифицировался, чем просто устарел. На самом деле сейчас многие другие ГОСТы тоже очень давно выпущены, но используются и по сей день
   GrayT
 
45 - 04.02.04 - 21:34
(44)...иногда вызывая улыбку
   Wow__cooL
46 - 04.02.04 - 21:40
(45) полностью согласна :)



Список тем форума
Рекламное место пустует   Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует