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


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

Метки: 

Вопрос от начинающего к ЗНАЮЩИМ ПРОГРАММИСТАМ

Я
   xrom
 
23.12.03 - 10:01
Начал изучать курс лекций по программированию в 1С. Там даны задания в конце главы:

Задание
1.    В глобальном модуле написать программу «Здравствуй мир»
2.    Создать внешний отчет «ОкноВМир»
3.    Добавить в форму диалога кнопку «Открыть Excel». При нажатии этой кнопки вызывать Excel. Используя конструкцию “Попытка… ”, выдавать сообщение “Excel не доступен” при неудачной попытке открытия внешней программы.
4.    Добавить в форму диалога кнопку «Открыть Word». При нажатии этой кнопки вызывать Word.
5.    Вставить внешний отчет «ОкноВМир» в конфигурацию.
6.    Добавить кнопку на панель инструментов, для функции вызова отчета «ОкноВМир».
7.     В отчете «ОкноВМир» добавить в форму диалога таблицу значений с колонками “Товар”, “Количество”, “Цена”, “Сумма” и кнопки «Добавить строку», «Удалить строку», «Свернуть по товарам». Последняя кнопка должна суммировать по товарам сумму и количество. Сумма должна вычисляться автоматически.

На задании 7 тормознулся конкретно: написал строки для создания строчек и колонок (http://xrom1.pochta.ru/ОкноВМир.ert на сайте http://xrom1.pochta.ru/ выложил), но как их вывести в таблицу на экране 1С, а не в строке коментариев? Как добавлять и удалять строчки (в смысле на экране)? Пробовал конструктором добавить таблицу, но добавился только один широкий столбец. В общем, КАК СВЯЗАТЬ СТРОКИ УПРАВЛЕНИЯ ТАБЛИЦЕЙ С ТЕКСТОМ ПРОГРАММЫ, НАПИСАННОМ В МОДУЛЕ?
 
 
   CzujMao
1 - 23.12.03 - 13:08
Всё гениальное просто - когда добавляешь на форму таблицу (ту самую, с одной колонкой ;) ты должен задать её идентификатор. После этого работаешь с ней из модуля как с обычной таблицей значений - ДобавитьКолонку(),НоваяСтрока(), Свернуть() и т.д. СоздастьОбъект("ТаблицаЗначений") делать не нужно.
   xrom
 
2 - 23.12.03 - 21:43
Спасибо, завтра попробую. Давно ждал ответа на этот вопрос. Вы мне очень помогли.
   Forgesemi
 
3 - 24.12.03 - 01:42
(0)Интересно, а выдается сертификат или еще что то по
окончанию курса и где они находятся?
   xrom
 
5 - 24.12.03 - 08:31
Эту книжку я взял с сайта одного за денюжку. Вроде какое-то тестирование проводилось на сайте профессионалов 1С. На сайте Гендальфа как-то проходил на пользователя - в конце сказали, что у меня хорошие результаты - можете попробовать пройти тест на уровень профессионала (цена такая-то), а если чувствуете, что ещё не готовы, то обучение стоит столько-то.
   345
6 - 24.12.03 - 08:45
Все сертификаты (в том числе и от самой 1С) - бумажки ...

Сертификат с сайта Хиппо - коммерческий проект с целью зарабатывания ...

А если уж веришь в сертификаты - перед обучением проверяй, имеет ли контора лицензию на обучение (это лицензированный вид деятельности)... И если не имеет, а выдает - то такой сертификат у тя могут просто отобрать даже мент на улице ... и будет прав ...
   xrom
 
7 - 24.12.03 - 08:48
То есть 1С не имеет лицензии на обучение?
   skunk
 
8 - 24.12.03 - 08:55
Народ, у меня кент своему сыну диплом об оканчании Алматинской школы милиции купил на день рождения. Сыну шесть лет было. А вы какие-то сертификаты.
   345
9 - 24.12.03 - 08:58
Сама 1С наверняка не имеет ... Он ей не нужен.
Обучением занимаются ее дочки - Учебные центры.. Они имеют, естественно ...

Вообще то нонсенс - сертификацией занимается фирма изготовитель ПО .... О качестве и ценности сертификата по 1С 7.7. - не знают только лохи ... покотрые никогда не были на сдаче ...

У мягких сертификация выполняется сторонней конторой ...
А сами мягкие зарабатывают на выпуске учебной литературы и курсов ....
   Михаил
10 - 05.01.04 - 16:03
Не получилось, ругается: не определена переменная для таблицы.

Исходники там же:
http://xrom1.pochta.ru/ОкноВМир.ert на сайте http://xrom1.pochta.ru/ выложил
 
  Рекламное место пустует
   Михаил
14 - 10.01.04 - 09:33
С переменной разобрался, получилось две таблицы: как с ними работать дальше? Подскажите, ПОЖАЛУЙСТА...

Исходники там же:
http://xrom1.pochta.ru/ОкноВМир.ert на сайте http://xrom1.pochta.ru/ выложил
   Михаил
15 - 12.01.04 - 09:10
Где спецы? А-у!
   345
16 - 12.01.04 - 09:48
Парень, с 23 декабря прошло 20 дней ....

я ленивый ... лень лазить по инету ... вот нацарапал

на форме   
ТЗ с именем ТЗ
кнопка Добавить Строку с именем Добавить 
кнопка Свернуть по ... с именем Свернуть 
кнопка УдалитьСтроку   с именем Удалить 

плиз, почитай про имя и текст на кнопке


//=========================================

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//\\\\\\\   ПриОткрытии                \\\\

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//=========================================

procedure OnOpen()
    тз.NewColumn( "Товар","Reference.Номенклатура" ,  , , "Товар" );
    тз.NewColumn( "Количество","Число" , 15 , 3, "Количество" ); 
    тз.NewColumn( "Цена","Число" , 15 , 2, "Цена" );
    тз.NewColumn( "Сумма","Число" , 15 , 2, "Сумма" );
EndProcedure //ПриОткрытии 


//=========================================

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//\\\\\\\   Добавить                \\\\\\\\\

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//=========================================

procedure Добавить()
    Товарец=CreateObject("Reference.Номенклатура");
    if Товарец.Choose("Добавление товара", "ФормаСписка") <>1 then return; endIf;  
    К = 1;
    if InputNumeric(К, "Количество",15, 3, )  <>1 then return; endIf; 
    if К=0 then 
        Message ("Указано нулевое количество товара. Новая строка не создана");
        return;
    endIf;  
    
    Ц = 1;
    if InputNumeric(Ц, "Цена",15, 2, )  <>1 then return; endIf; 
    if Ц=0 then 
        Message ("Указано нулевая цена товара. Новая строка не создана");
        return;
    endIf;  
    тз.NewLine();
    тз.Товар = Товарец.CurrentItem();
    тз.Количество = К;
    тз.Цена = Ц;
    тз.Сумма= К*Ц;
EndProcedure //Добавить 


//=========================================

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//\\\\\\\   Удалить                \\\\\\\\\

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//=========================================

procedure Удалить() 
    if тз.CurrentLine() = 0 then return; endIf;  
    if тз.CurrentLine() > тз.LinesCnt() then return; endIf; 
    if DoQueryBox("Удалить строку "+тз.CurrentLine()+" с товаром ??","Да+Нет") <> "Да" then
        return;
    endIf; 
    тз.DeleteLine();
EndProcedure //Удалить 


//=========================================

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//\\\\\\\   Свенуть                \\\\\\\\\

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//=========================================

procedure Свернуть() 
    тз.GroupBy("Товар","Количество,Сумма");
   // после выполнения этой строки колонка цена исчезнет! 

    
   // чтобы она не исчезла - надо сворачивать 

   // с суммированием ее 

    
   // т.е. так                            

    
    тз.GroupBy("Товар","Количество,Сумма,Цена"); 
    
   // но после такого сворачивания будем в колонке Цена

   // иметь бред сивой кобылы - цены сложатся ... по 

   // одинаковым товарам 

   // можно пробежаться по тз и проставить среднюю цену

    
    тз.SelectLines();
    while тз.GetLine() =1 do
        if тз.Количество > 0 then
            тз.Цена = тз.Сумма / тз.Количество;
        else             
           // если есть сумма без количества 

           // просто переносим зануляем все  

            тз.Цена = 0;
            тз.сумма= 0;
        endIf; 
    endDo;             
    
   // вообще то требование всяких проверок в

   // постановке отсутствует

    
EndProcedure 

======================================
собственно все
   Михаил
17 - 12.01.04 - 10:08
Спасибо!!! А то я тормознулся сильно в обучении.
   Михаил
18 - 20.01.04 - 15:39
Получилось всё, кроме СВЕРНУТЬ, ругается:

Сдишком много параметров передано при вызове процедуры, функции.

Исходники выложу через 5 минут.
   Михаил
19 - 20.01.04 - 15:44
Попробовал функцию ИТОГ (в модуле ПЛАН Б), но получается, что непонятно, что это за цифры, хоть и правильные.
   Михаил
20 - 20.01.04 - 15:46
Исходники там же:
http://xrom1.pochta.ru/ОкноВМир.ert на сайте http://xrom1.pochta.ru/ выложил
   Михаил
21 - 21.01.04 - 18:32
Кто-нибудь в состоянии мне помочь?
   Pasha
22 - 22.01.04 - 14:33
Просвятите :)
Есть такая замануха, нужно в “Отчете”, вывести для печати, даты рождения, которые должны быть отсортированы, как это реализовать не писавши своей функции или процедуры, возможно ли и как это зделать?
   Михаил
23 - 29.01.04 - 08:22
Не надо, не помогайтн сейчас мне. Я разобрался и у меня полностью всё получилось. Нашёл описание Свернуть с примером и понял, что я напортачил в кавычках.



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