duke
Интересующийся
Offline
|
|
« : 21-06-2008 14:20 » |
|
Доброго времени суток. Нужна блок-схема алгоритма работы программы по части кода. ЯП 1с. Сможите помочь?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #1 : 21-06-2008 14:30 » |
|
чем? нарисовать кавдратики? ромбики стрелочки?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #2 : 21-06-2008 14:35 » |
|
Именно, правильно нарисовать, и не откажусь от описания что каждый "квадратик, ромбик" делает.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #3 : 21-06-2008 14:36 » |
|
ты так много говоришь и так мало делаешь выкладывай кусок кода, а там че-нибудь придумаем
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
duke
Интересующийся
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
|
|
« Ответ #5 : 21-06-2008 14:56 » |
|
duke, а теперь напиши все словами, но покороче например Начало Проверка Даты Создать объект Сформировать запрос Выполнить запрос Заполнить объект Вывести таблицу Конец
Только не копируй мое, потому как писал с головы, не смотрел накод
На будущее - офрмляй код тегами [code] [/code]
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
duke
Интересующийся
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
|
|
« Ответ #7 : 21-06-2008 15:46 » |
|
duke, может тебе так станет понятней, если немного поформатировать прокомментировать код Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда Возврат; //запрос не выполнился КонецЕсли; //запрос выполнен, разбираем выборку //выполняем цикл по ВЕКСЕЛЮ, к сожалению не помню что вернет такая конструкция Запрос.Группировка(...) Пока Запрос.Группировка("Вексель")>0 Цикл Если Запрос.Вексель.Выбран()=0 Тогда //если 0, то Продолжаем цикл (видимо к этому векселю что-то привязано Продолжить; КонецЕсли; Если (Запрос.КонКол<=0)Тогда Продолжить; КонецЕсли; //Здесь заполняем Текущее значение ТЗ.НоваяСтрока(); ТЗ.Номер = СокрЛП(Строка(Запрос.Вексель)); ТЗ.Эмитент = Строка(Запрос.Эмитент); ТЗ.ДатаСост = Запрос.ДатаСоставления; ТЗ.ДатаПог = Строка(СрокПогашенияТекст(Запрос.Вексель.ДатаСоставления,Запрос.Вексель.ДатаПогашения,Запрос.Вексель.СрокПогашения)); ТЗ.ДатаПрих = Строка(Запрос.ДатаПрихода); ТЗ.Номинал = Запрос.Вексель.Номинал; ТЗ.Ссылка=Запрос.ссылка; док=ТЗ.Ссылка; Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()=1 цикл Если Док.Вексель=Запрос.Вексель Тогда ТЗ.ЦенаПокупки = док.Сумма; прервать; КонецЕсли; КонецЦикла; КонецЦикла;
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #8 : 21-06-2008 16:10 » |
|
Начало Проверка даты Выбор предприятия Выбор валюты векселя Выбор банка Создать обьект
... Ввод текста (возврат/продолжение) Ввод инф-ии по векселям (возврат/продолжение) Вывод отчета(?) Не правльно?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #9 : 21-06-2008 16:30 » |
|
duke, еще большая просьба: не плоди одинаковые темы.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #10 : 21-06-2008 16:36 » |
|
duke, В принципе это все Все зависит от детальности раскрытия алгоритма Даже больше скажу например Создать объект не нужно Т.е. все просто Начало Какие-то проверки Ввод данных Обработка данных в цикле Вывод данных Конец
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #11 : 21-06-2008 16:38 » |
|
RXL,Извините Sla, Спасибо ) У меня еще одна просьба будет... Можешь накидать эту схему на бумаге, там вроде какие то определенные "ромбики,кубики,стрелочки и.т.д." должны быть Я не представляю даже как это должно выглядеть.
|
|
« Последнее редактирование: 21-06-2008 16:40 от duke »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #12 : 22-06-2008 06:22 » |
|
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #13 : 22-06-2008 07:15 » |
|
Мне бы убидится что я правильно ее сделал...(
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #14 : 22-06-2008 08:41 » |
|
duke, так в чем дело? выкладывай сюда свою работу или сканируешь, или конвертируешь в графический формат, в "Ответе" используешь дополнительные опции, вкладываешь файл
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #15 : 22-06-2008 10:30 » |
|
А как ее вылоджить сюда?)
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #16 : 22-06-2008 10:32 » |
|
duke, жмешь "Ответ" в конце темы, пишешь пост. Под окном ввода есть "+ Дополнительные опции" - нажми и там все написано.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #17 : 22-06-2008 12:02 » |
|
Вот, подправте пожалйсто )
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #18 : 22-06-2008 12:19 » |
|
duke, хм попробуй файл назвать иностранными буквами у меня не получается его скачать и конвертни его в jpg формат, он займет меньше места
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
|
|
« Ответ #19 : 22-06-2008 12:19 » |
|
duke, не надо использовать в именах файлов кириллицу - будут проблемы с кодировками. Что мы и наблюдаем - "вложение не найдено"...
И еще: не выкладывай в интернет BMP!!! Сохраняй как скриншоты как PNG, а фотографии - JPG!
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #20 : 22-06-2008 13:22 » |
|
rar можно?
|
|
|
Записан
|
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #21 : 22-06-2008 13:29 » |
|
Вот jpg xD
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #22 : 22-06-2008 13:59 » |
|
duke, нет, не верно.
1. Косые блоки используются для ввода и вывода, прямоугольные - для вычислений. У тебя выбор (что есть ввод) - прямоугольный.
2. Почему условие у тебя имеет только один выход? Их всегда два: или соответствует условию, или нет.
3. Писал же... JPG - для фотографий. Текст теперь еле разглядишь. Используй для подобной графики PNG.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #23 : 22-06-2008 14:04 » |
|
RXL, Запутался совсем.. не можешь сделать как надо?)
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #24 : 22-06-2008 14:27 » |
|
duke, помочь разобраться - могу, а сделать за тебя - никакого желания.
Тебе дали ссылку, где написано, что какой блок значит. Прочти это еще раз.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #25 : 22-06-2008 15:12 » |
|
Кое что подлатал, не могли бы вы вновь проверить?)
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #26 : 22-06-2008 15:58 » |
|
duke, ужас.
Скажи честно, зачем это тебе нужно?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|
Sla
|
|
« Ответ #28 : 22-06-2008 16:47 » |
|
1. Твоя программа выполняет ПОСЛЕДОВАТЕЛЬНЫЕ "вычисления" Соответсвенно блоки ис вводом данных должны идти ПОСЛЕДОВАТЕЛЬНО, а не параллельно Что такое + и - Условие (ромбик) на ветке пишется ДА если условие выполняется Нет - если не выполняется
Где конец?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
duke
Интересующийся
Offline
|
|
« Ответ #29 : 22-06-2008 17:42 » |
|
Ну вот опять, куча замечаний) Вы в них хорошо разбераетесь, нарисуйте, покажите как это все наглядно, я даже ен понимаю о чем речь идет...
|
|
|
Записан
|
|
|
|
|