Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: блок-схема алгоритма работы программы  (Прочитано 60026 раз)
0 Пользователей и 1 Гость смотрят эту тему.
duke
Интересующийся

ru
Offline Offline

« : 21-06-2008 14:20 » 

Доброго времени суток.
Нужна блок-схема алгоритма работы программы по части кода.
ЯП 1с.
Сможите помочь?
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 21-06-2008 14:30 » 

чем? нарисовать кавдратики? ромбики стрелочки?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
duke
Интересующийся

ru
Offline Offline

« Ответ #2 : 21-06-2008 14:35 » 

Именно, правильно нарисовать, и не откажусь от описания что каждый "квадратик, ромбик" делает.
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 21-06-2008 14:36 » 

ты так много говоришь и так мало делаешь Улыбаюсь
выкладывай кусок кода, а там че-нибудь придумаем
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
duke
Интересующийся

ru
Offline Offline

« Ответ #4 : 21-06-2008 14:39 » 

Вот xD

Код:
//*******************************************
Перем выбФирма;
Процедура Сформировать()
    Перем ВыбСтатус;   
Если Датакон<ДатаНач  Тогда
ДатаКон=датаНач;
Конецесли;

ВыбСтатус=перечисление.стБанк.выкуплен;
Т = СоздатьОбъект("Таблица");
Т.ИсходнаяТаблица("Таблица");             

ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Ссылка","Документ");
ТЗ.НоваяКолонка("Статус");
ТЗ.НоваяКолонка("Номер","Строка");
ТЗ.НоваяКолонка("Эмитент","Строка");
ТЗ.НоваяКолонка("Номинал","Число");         
ТЗ.НоваяКолонка("ДатаСост","Дата");
ТЗ.НоваяКолонка("ДатаПог","Строка");
ТЗ.НоваяКолонка("ДатаПрих","Дата");
ТЗ.НоваяКолонка("Индоссант","Строка");
ТЗ.НоваяКолонка("ЦенаПокупки","Число");   
ТЗ.НоваяКолонка("КодПрихода","Строка");         
ТЗ.УдалитьСтроки();

Т.ВывестиСекцию("Шапка");                 


ТекстЗапроса = "                   
|Период С ДатаНач По ДатаКон;
|Кол=Регистр.Банк.Количество;
|Фирма = Регистр.Банк.Фирма;
|ФирмадляКого = Регистр.Банк.ФирмаДляКого;
|Ссылка = Регистр.Банк.Доквыкупа;
|Статус = Регистр.Банк.Статус;
|Перечислено = Регистр.Банк.Перечислено;
|Банк = Регистр.Банк.Банк;
|ДатаПрихода = Регистр.Банк.ДокВыкупа.ДатаДок;
|Вексель = Регистр.Банк.Вексель;
|Эмитент = Регистр.Банк.Вексель.Эмитент;
|Валюта = Регистр.Банк.Вексель.Валюта;
|Номинал = Регистр.Банк.Вексель.Номинал;
|ДатаСоставления = Регистр.Банк.Вексель.ДатаСоставления;
|ДатаПогашения = Регистр.Банк.Вексель.ДатаПогашения;
|СрокПогашения = Регистр.банк.Вексель.СрокПогашения;
|Контрагент = Регистр.Банк.Контрагент;
|Группировка Вексель;
|Функция КонКол=КонОст(Кол);
|Условие (Фирма=ВыбФирма);
|Условие (Статус=ВыбСтатус);
|Условие (Банк в ВыбБанк);
|Условие (Валюта = ВыбВалюта);
|";

Запрос = СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда   
Возврат;
КонецЕсли;
Пока Запрос.Группировка("Вексель")>0 Цикл
Если Запрос.Вексель.Выбран()=0 Тогда
Продолжить;
КонецЕсли;    
Если (Запрос.КонКол<=0)Тогда
Продолжить;
КонецЕсли;

ТЗ.НоваяСтрока();
ТЗ.Номер = СокрЛП(Строка(Запрос.Вексель));
ТЗ.Эмитент = Строка(Запрос.Эмитент);
ТЗ.ДатаСост = Запрос.ДатаСоставления;
ТЗ.ДатаПог = Строка(СрокПогашенияТекст(Запрос.Вексель.ДатаСоставления,Запрос.Вексель.ДатаПогашения,Запрос.Вексель.СрокПогашения));
ТЗ.ДатаПрих = Строка(Запрос.ДатаПрихода);
ТЗ.Номинал = Запрос.Вексель.Номинал;
    ТЗ.Ссылка=Запрос.ссылка;
    док=ТЗ.Ссылка;
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 цикл
Если Док.Вексель=Запрос.Вексель Тогда   
ТЗ.ЦенаПокупки = док.Сумма;
прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;

НПП=0;
Если ТЗ.КоличествоСтрок()>0 Тогда
Т.ВывестиСекцию("Отчет");
ТЗ.Сортировать("Статус");
ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
        НПП=НПП+1;
    НомДок=Сред(ТЗ.Ссылка,(Найти(ТЗ.Ссылка," ")+1));
Т.ВывестиСекцию("Строка");
КонецЦикла;
  ИтогНом=Формат(ТЗ.Итог("Номинал"),"Ч019.2, ");
ИтогПок=Формат(ТЗ.Итог("ЦенаПокупки"),"Ч019.2, ");
  ТЗ.УдалитьСтроки();
Т.ВывестиСекцию("Итоги");
КонецЕсли;
Т.Опции(0,0,4,0,"ОпцииПечатиДействующих","Окно печати действующие");
Т.ТолькоПросмотр(1);
Т.ОбластьПечати(1);
Т.Показать("Выкупленные за период","");
КонецПроцедуры

процедура ПриОткрытии()
       если НазваниеНабораПрав()="Банк" Тогда
      ВыбБанк=глПользователь.Банк;
        Форма.ВыбБанк.Доступность(0);   
ВыбФирма=РабФирма;
Форма.Заголовок("  '"+Врег(ВыбФирма)+"'",1)
КонецЕсли;
ВыбВалюта = Рубли;
КонецПроцедуры
« Последнее редактирование: 21-06-2008 14:50 от Sla » Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 21-06-2008 14:56 » 

duke, а теперь напиши все словами, но покороче
например
Начало
Проверка Даты
Создать объект
Сформировать запрос
Выполнить запрос
Заполнить объект
Вывести таблицу
Конец


Только не копируй мое, потому как писал с головы, не смотрел накод

На будущее - офрмляй код тегами [code]   [/code]
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
duke
Интересующийся

ru
Offline Offline

« Ответ #6 : 21-06-2008 15:16 » 

Начало
Проверка даты
Выбор предприятия
Выбор валюты векселя
Выбор банка
Создать обьект
Не могли бы вы дополнить то, что я написал?

Код:
 
Запрос = СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда   
Возврат;
КонецЕсли;
Пока Запрос.Группировка("Вексель")>0 Цикл
Если Запрос.Вексель.Выбран()=0 Тогда
Продолжить;
КонецЕсли;    
Если (Запрос.КонКол<=0)Тогда
Продолжить;
КонецЕсли;

ТЗ.НоваяСтрока();
ТЗ.Номер = СокрЛП(Строка(Запрос.Вексель));
ТЗ.Эмитент = Строка(Запрос.Эмитент);
ТЗ.ДатаСост = Запрос.ДатаСоставления;
ТЗ.ДатаПог = Строка(СрокПогашенияТекст(Запрос.Вексель.ДатаСоставления,Запрос.Вексель.ДатаПогашения,Запрос.Вексель.СрокПогашения));
ТЗ.ДатаПрих = Строка(Запрос.ДатаПрихода);
ТЗ.Номинал = Запрос.Вексель.Номинал;
    ТЗ.Ссылка=Запрос.ссылка;
    док=ТЗ.Ссылка;
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 цикл
Если Док.Вексель=Запрос.Вексель Тогда   
ТЗ.ЦенаПокупки = док.Сумма;
прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;

НПП=0;
Если ТЗ.КоличествоСтрок()>0 Тогда
Т.ВывестиСекцию("Отчет");
ТЗ.Сортировать("Статус");
ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
        НПП=НПП+1;
    НомДок=Сред(ТЗ.Ссылка,(Найти(ТЗ.Ссылка," ")+1));
Т.ВывестиСекцию("Строка");
КонецЦикла;
  ИтогНом=Формат(ТЗ.Итог("Номинал"),"Ч019.2, ");
ИтогПок=Формат(ТЗ.Итог("ЦенаПокупки"),"Ч019.2, ");
  ТЗ.УдалитьСтроки();
Т.ВывестиСекцию("Итоги");
КонецЕсли;
Т.Опции(0,0,4,0,"ОпцииПечатиДействующих","Окно печати действующие");
Т.ТолькоПросмотр(1);
Т.ОбластьПечати(1);
Т.Показать("Выкупленные за период","");
КонецПроцедуры

процедура ПриОткрытии()
       если НазваниеНабораПрав()="Банк" Тогда
      ВыбБанк=глПользователь.Банк;
        Форма.ВыбБанк.Доступность(0);   
ВыбФирма=РабФирма;
Форма.Заголовок("  '"+Врег(ВыбФирма)+"'",1)
КонецЕсли;
ВыбВалюта = Рубли;
КонецПроцедуры

В этих циклах собственно и есть проблемма)


      
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 21-06-2008 15:46 » 

duke, может тебе так станет понятней, если немного поформатировать  прокомментировать код
Код:
	Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда    
Возврат; //запрос не выполнился
КонецЕсли;
//запрос выполнен, разбираем выборку
//выполняем цикл по ВЕКСЕЛЮ, к сожалению не помню что вернет такая конструкция    Запрос.Группировка(...)
Пока Запрос.Группировка("Вексель")>0 Цикл
Если Запрос.Вексель.Выбран()=0 Тогда
//если 0, то Продолжаем цикл (видимо к этому векселю что-то привязано
Продолжить;
КонецЕсли;    
Если (Запрос.КонКол<=0)Тогда
Продолжить;
КонецЕсли;
//Здесь заполняем  Текущее значение
ТЗ.НоваяСтрока();
ТЗ.Номер = СокрЛП(Строка(Запрос.Вексель));
ТЗ.Эмитент = Строка(Запрос.Эмитент);
ТЗ.ДатаСост = Запрос.ДатаСоставления;
ТЗ.ДатаПог = Строка(СрокПогашенияТекст(Запрос.Вексель.ДатаСоставления,Запрос.Вексель.ДатаПогашения,Запрос.Вексель.СрокПогашения));
ТЗ.ДатаПрих = Строка(Запрос.ДатаПрихода);
ТЗ.Номинал = Запрос.Вексель.Номинал;
ТЗ.Ссылка=Запрос.ссылка;
док=ТЗ.Ссылка;
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 цикл
Если Док.Вексель=Запрос.Вексель Тогда   
ТЗ.ЦенаПокупки = док.Сумма;
прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
duke
Интересующийся

ru
Offline Offline

« Ответ #8 : 21-06-2008 16:10 » 

Цитата
Начало
Проверка даты
Выбор предприятия
Выбор валюты векселя
Выбор банка
Создать обьект
...
Ввод текста (возврат/продолжение)
Ввод инф-ии по векселям (возврат/продолжение)
Вывод отчета(?)

Не правльно?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 21-06-2008 16:30 » 

duke, еще большая просьба: не плоди одинаковые темы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 21-06-2008 16:36 » 

duke, В принципе это все Улыбаюсь
Все зависит от детальности раскрытия алгоритма

Даже больше скажу например Создать объект не нужно
Т.е. все просто
Начало
Какие-то проверки
Ввод данных
Обработка данных в цикле
Вывод данных
Конец
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
duke
Интересующийся

ru
Offline Offline

« Ответ #11 : 21-06-2008 16:38 » 

RXL,Извините  Краснею
Sla, Спасибо )
У меня еще одна просьба будет...
Можешь накидать эту схему на бумаге, там вроде какие то определенные "ромбики,кубики,стрелочки и.т.д." должны быть
Я не представляю даже как это должно выглядеть. Жаль
« Последнее редактирование: 21-06-2008 16:40 от duke » Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 22-06-2008 06:22 » 

Цитата
Можешь накидать эту схему на бумаге,
Накидал, приходи смотри.

А вообще-то бери ручку, бумагу, и вперед!

http://defacto.examen.ru/db/Examine/catdoc_id/F8A3C3901F55F4C1C3256B490039E05C/rootid/9327995FB7A6D40FC3256A02002CE0D5/defacto.html
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
duke
Интересующийся

ru
Offline Offline

« Ответ #13 : 22-06-2008 07:15 » 

Мне бы убидится что я правильно ее сделал...(
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 22-06-2008 08:41 » 

duke, так в чем дело?
выкладывай сюда свою работу
или сканируешь, или конвертируешь в графический формат, в "Ответе" используешь дополнительные опции, вкладываешь файл
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
duke
Интересующийся

ru
Offline Offline

« Ответ #15 : 22-06-2008 10:30 » 

А как ее вылоджить сюда?)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 22-06-2008 10:32 » 

duke, жмешь "Ответ" в конце темы, пишешь пост. Под окном ввода есть "+ Дополнительные опции" - нажми и там все написано.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
duke
Интересующийся

ru
Offline Offline

« Ответ #17 : 22-06-2008 12:02 » 

Вот, подправте пожалйсто )

* Безымянныйрпарпрарп27-па1.bmp (299.58 Кб - загружено 1102 раз.)
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 22-06-2008 12:19 » 

duke, хм попробуй файл назвать иностранными буквами у меня не получается его скачать
и конвертни его в jpg формат, он займет меньше места
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 22-06-2008 12:19 » 

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

И еще: не выкладывай в интернет BMP!!! Сохраняй как скриншоты как PNG, а фотографии - JPG!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
duke
Интересующийся

ru
Offline Offline

« Ответ #20 : 22-06-2008 13:22 » 

rar можно?
Записан
duke
Интересующийся

ru
Offline Offline

« Ответ #21 : 22-06-2008 13:29 » 

Вот jpg xD

* block shema.JPG (27.89 Кб - загружено 1149 раз.)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 22-06-2008 13:59 » 

duke, нет, не верно.

1. Косые блоки используются для ввода и вывода, прямоугольные - для вычислений. У тебя выбор (что есть ввод) - прямоугольный.

2. Почему условие у тебя имеет только один выход? Их всегда два: или соответствует условию, или нет.

3. Писал же... JPG - для фотографий. Текст теперь еле разглядишь. Используй для подобной графики PNG.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
duke
Интересующийся

ru
Offline Offline

« Ответ #23 : 22-06-2008 14:04 » 

RXL, Запутался совсем.. Жаль
не можешь сделать как надо?)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #24 : 22-06-2008 14:27 » 

duke, помочь разобраться - могу, а сделать за тебя - никакого желания.

Тебе дали ссылку, где написано, что какой блок значит. Прочти это еще раз.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
duke
Интересующийся

ru
Offline Offline

« Ответ #25 : 22-06-2008 15:12 » 

Кое что подлатал, не могли бы вы вновь проверить?)

* block shema 2.PNG (18.85 Кб - загружено 1132 раз.)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #26 : 22-06-2008 15:58 » 

duke, ужас.

Скажи честно, зачем это тебе нужно?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
duke
Интересующийся

ru
Offline Offline

« Ответ #27 : 22-06-2008 16:02 » 

Зачет завтра, дали код надо БС сделать, а с ней судя по твоим словам очень плохо все Жаль
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #28 : 22-06-2008 16:47 » 

1. Твоя программа выполняет ПОСЛЕДОВАТЕЛЬНЫЕ "вычисления"
Соответсвенно блоки ис вводом данных должны идти ПОСЛЕДОВАТЕЛЬНО, а не параллельно
Что такое + и -
Условие (ромбик) на ветке пишется ДА если условие выполняется
Нет - если не выполняется

Где конец?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
duke
Интересующийся

ru
Offline Offline

« Ответ #29 : 22-06-2008 17:42 » 

Ну вот опять, куча замечаний)
Вы в них хорошо разбераетесь, нарисуйте, покажите как это все наглядно, я даже ен понимаю о чем речь идет...
Записан
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines