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

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

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« : 29-09-2010 04:39 » 

Я только начинаю обучаться программированию в 1с. Но так и не смог найти самый простешеи отчет, всегда попадались с наворотами, откуда новичку трудно выявить алгоритм построения. А хотелось бы начать с травиального и постепенно переходить на более сложные конструкци.

Помогите создать небольшой  отчетик: по нажатию кнопки "сформировать" выводилась таблица с ФИО сотрудников + нужно, чтобы можно было сделать выборку по полу.

И, если не трудно, то еще объясните конструкцию модуля(т.е какое действие что делает)...Я немного алгоритм понимать начал, но еще раз закрепить не помешает...

« Последнее редактирование: 29-09-2010 05:02 от Алексей1153++ » Записан
Kivals
Команда клуба

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

WWW
« Ответ #1 : 29-09-2010 04:58 » 

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

Внимание вопрос: о какой платформе ты говоришь?
Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #2 : 29-09-2010 05:01 » 

7.7
Записан
Kivals
Команда клуба

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

WWW
« Ответ #3 : 29-09-2010 05:42 » 

Пойдем по порядку:
Удалось создать отчет?
Удалось разместить реквизит для выбора пола на форме?
Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #4 : 29-09-2010 05:49 » 

до риквизита особо дело не дошло...я никак не создам модуль...не разобрался еще точно что за чем идет...когда в ход идет создание секций...

Добавлено через 8 минут и 32 секунды:
Прецедура Сформировать()

сотр = СоздатьОбъект("Справочник.Сотрудники");

Таб = СоздатьОбъект(ТаблицаЗначений);

Таб.НоаваяКолонка("ФИО");
Таб.НоваяКолонка("Должность");
Таб.НоваяКолонка("Подразделение");
Таб.НоваяКолонка("Код");

//--------------------
Таб.Код=сотр.Код;
Таб.Фио=сотр.Наименование;
Таб.Подразделение=сотр.Подразделение.Получить();
Таб.Должность=сотр.Должность.Получть();




дальше я пока запнулся
« Последнее редактирование: 29-09-2010 05:58 от hiller » Записан
kiser
Участник

by
Offline Offline

« Ответ #5 : 29-09-2010 07:02 » 

Прецедура Сформировать()
сотр = СоздатьОбъект("Справочник.Сотрудники");
Таб = СоздатьОбъект(ТаблицаЗначений);
Таб.НоаваяКолонка("ФИО");
Таб.НоваяКолонка("Должность");
Таб.НоваяКолонка("Подразделение");
Таб.НоваяКолонка("Код");
//--------------------
Таб.Код=сотр.Код;
Таб.Фио=сотр.Наименование;
Таб.Подразделение=сотр.Подразделение.Получить();
Таб.Должность=сотр.Должность.Получть();
дальше я пока запнулся
вроде так ты ничего не выбрал
чтоб почитать всех сотрудников из справочника нужно так:

Код:
Прецедура Сформировать()
Таб = СоздатьОбъект("ТаблицаЗначений");
//не забываем указывать тип и размерность
Таб.НоаваяКолонка("ФИО,"Строка",50,0);
Таб.НоваяКолонка("Должность","Строка",15,0);
Таб.НоваяКолонка("Подразделение","Спрвочник.Подразделение");
Таб.НоваяКолонка("Код","Число",5,0);

сотр = СоздатьОбъект("Справочник.Сотрудники");
сотр.ВыбратьЭлементы(); //выбираем всех из справочника
Пока сотр.ПолучитьЭлемент()=1 Цикл //читаем по одному
        //проверка
Если Сотр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;

//Теперь добавление в таблицу значений
Таб.НоваяСтрока(); //не забываем про это
        Таб.Код=сотр.Код;
        Таб.Фио=сотр.Наименование;
        //далее периодические реквизиты получаем по дате,
        //где ДатаДок – можно указать на форме отчета или создать переменную.
        Таб.Подразделение=сотр.Подразделение.Получить(ДатаДок);
        Таб.Должность=сотр.Должность.Получить(ДатаДок);
КонецЦикла;

КонецПроцедуры;
« Последнее редактирование: 29-09-2010 07:05 от kiser » Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #6 : 29-09-2010 07:29 » 

с этим, вроде, разобрался, а как теперь правильно передать значение из этой ТаблицыЗначений в таблицу отчета, которая будет открываться после нажатия кнопки "Сформировать"?

Добавлено через 6 минут и 46 секунд:
нужно ли как-то объявлять имя и поля этой таблицы и когда объявлять секции?
« Последнее редактирование: 29-09-2010 07:36 от hiller » Записан
kiser
Участник

by
Offline Offline

« Ответ #7 : 29-09-2010 07:54 » 

да нужно, но тут лучше смотреть на примерах в готовых отчетах или документах.
В таблицах глянь как они оформляются и выделяются секции, а в модуле смотри как формируется таблица
в коде ищи
Код:
Таб=СоздатьОбъект("Таблица");
Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #8 : 29-09-2010 09:42 » 


выводит ошибку почему-то:

Таб.НоваяКолонка("ФИО", "Строка", 50,1);
{Отчет.новый4.Форма.Модуль(6)}: после агрегатного объекта не обнаружено(НоваяКолонка)
Записан
Kivals
Команда клуба

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

WWW
« Ответ #9 : 29-09-2010 09:48 » 

В твоем случае должно быть
Код:
Таб = СоздатьОбъект("ТаблицаЗначений");
вместо
Код:
Таб = СоздатьОбъект(ТаблицаЗначений);

Попробуй сделать отчет с использованием запроса, а сам запрос - с помощью конструктора запроса (Меню: Конструкторы - Запрос...). Он тебе нарисует и запрос, и обход по нему, и вывод на экран - а после почитаешь текст и задашь вопросы.
Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #10 : 30-09-2010 09:57 » 

большое спасибо, немного стал разбираться....решил попробывать оформить выбор пола через радиокнопки....как выглядит программный код, чтобы при флажке на радио кнопке 1 выводились все женщины...

я отчет делал через запрос....предполагаю, что код будет выглядеть примерно так:

Если ВыбПол = 1   Тогда
ТекстЗапроса = ТекстЗапроса + РазделительСтрок + "Условие ( )" ;
КонецЕсли;

Добавлено через 44 секунды:
что в скобках долно быть?
« Последнее редактирование: 30-09-2010 09:58 от hiller » Записан
Kivals
Команда клуба

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

WWW
« Ответ #11 : 30-09-2010 13:32 » 

Во-первых в кавычках должна быть ";" после скобок,
во-вторых с радиокнопками лучше разбирайся позже (они достаточно плохо реализованы в 7.7)
ну и лучше выбор пола задай тем же типом, что у тебя реквизит в справочнике (скорее всего - перечисление)
Тогда (если ты реквизит назовешь ВыбПол) то код будет такой:
Код:
Если ВыбПол.Выбран()=1 Тогда
    ТекстЗапроса = ТекстЗапроса + " Условие(Пол=ВыбПол);"; // РазделительСтрок на выполнение не влияет
КонецЕсли;

И вообще - опубликуй свой запрос (легче будет пояснять на живом коде)
Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #12 : 01-10-2010 07:27 » 

Код:
Процедура Сотрудники()

Перем Запрос, ТекстЗапроса, Таб;

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сотрудники)
|Сотрудники = Справочник.Сотрудники.ТекущийЭлемент;     
|Пол = Справочник.Сотрудники.Пол;
|Подразделение=  Справочник.Сотрудники.Подразделение;
|Группировка Сотрудники упорядочить по Сотрудники.Код, Сотрудники.Наименование, Сотрудники.Должность, Сотрудники.Подразделение;
    |Условие(Пол = ВыбПол);   
|Условие(Подразделение = ВыбПодразделение);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

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

Таб.ТолькоПросмотр(1);
Таб.Показать("Сотрудники", "");
 

КонецПроцедуры
   //выводит только пол из справочника ОКИН
   Процедура ПриНачалеВыбораЗначения(Элемент,ФлагОбработки)
  Если Элемент="ВыбПол" Тогда
ФлагОбработки = 0;
МодальныйРежим=Форма.МодальныйРежим();
Если МодальныйРежим = 0 тогда
ОткрытьПодбор("Справочник.ОКИН","ДляВыбораПоФасету","01",0,ВыбПол);
Иначе                                                             
ВыбранноеЗначение = "01";
ОткрытьФорму("Справочник.ОКИН.ДляВыбораПоФасету", ВыбранноеЗначение);
Если ПустоеЗначение(ВыбранноеЗначение) = 0 тогда
ВыбПол = ВыбранноеЗначение;
КонецЕсли;
КонецЕсли;
   КонецЕсли;

 КонецПроцедуры

Добавлено через 3 минуты и 54 секунды:
теперь думаю как можно в конце таблицы вывести поле ИТОГО с колличеством найденых сотрудников и создать флажок, чтобы если флажок=1 выводились все сотрудники(штатные, физлица, уволенные), а если флажок=0, то выводились только штатные

как это реализовать в том случае, если создается ТаблицаЗначений, я нашел....а вот как это сделать обойдясь одними запросами? такое вообще можно реализовать?

Добавлено через 2 дня, 23 часа, 39 минут и 28 секунд:
с ИТОГО тоже разобрался, осталось с флажком уволенных
« Последнее редактирование: 04-10-2010 09:53 от hiller » Записан
Kivals
Команда клуба

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

WWW
« Ответ #13 : 04-10-2010 14:44 » 

hiller, А какой признак уволенности сотрудника? Установлена Дата увольнения или что-то другое?
Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #14 : 05-10-2010 05:16 » 

hiller, А какой признак уволенности сотрудника? Установлена Дата увольнения или что-то другое?

в справочнике "Сотрудники" есть колонка "Состояние" (забивается  в сотрудники/места работы) ...там и прописывается какой он: штатный, физлицо, внешний или уволенный

пишется так:
Штатный сотрудник с 00.00.2000
или
Сотрудник уволен 00.00.2000

Добавлено через 26 минут и 26 секунд:
хотя зачем такие сложности?, как сделать чтобы он  просто выводил всех штатных сотрудников по умолчанию, без каких либо флажковых кнопок?
я так понимаю, что это как-то связано с "Справочник.Сотрдудники.СостояниеФизЛица"

Добавлено через 1 час, 23 минуты и 42 секунды:
и вот еще: если из языка компьютера на наш родной язык перевести:

ПустоеЗначение(сотр.СостояниеФизЛица.Получить(ДатаА))<>1

что получится?
« Последнее редактирование: 05-10-2010 07:09 от hiller » Записан
Kivals
Команда клуба

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

WWW
« Ответ #15 : 05-10-2010 08:17 » 

и вот еще: если из языка компьютера на наш родной язык перевести:

ПустоеЗначение(сотр.СостояниеФизЛица.Получить(ДатаА))<>1

что получится?
"Заполнено состояние на дату ДатаА"

С периодическими реквизитами в запросах сложности Жаль
Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #16 : 05-10-2010 12:01 » 

я смотрю, можно списки нужныхколонок можно оформить с помощью элемента диалга "Список"

хочу попробывать создать два списка: в одном множество колонок, а в другом те, которые я выберу из первого...

первое на чем встрял: Как заполнить первый список интерисующими меня параметрами?
Записан
Kivals
Команда клуба

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

WWW
« Ответ #17 : 05-10-2010 13:39 » 

Смотри в синтакс-помощнике методы работы со значениями типа СписокЗначений.
Заполнять в предопределенной процедуре ПриОткрытии() - см. там же
Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #18 : 06-10-2010 09:44 » 

спасибо, разобрался, правда на примере, т.к. работаю на портейбол версси, а там нет такого помощника....а есть такой помощник, чтобы он отдельно работал, как хелп какой-нть?
Записан
Kivals
Команда клуба

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

WWW
« Ответ #19 : 06-10-2010 09:59 » 

hiller, тяжело тебе без синтакс-помощника придется...
С portable версиями не работал - а что значит "нет"? Синтакс-помощник - это набор файлов *.als в каталогах программы / базы.
Можешь где-то установить обычную версию и скопировать оттуда эти файлы в каталог базы, на которой ты тренируешься. Дальше вызывается по Ctrl+F1
Записан
hiller
Интересующийся

ru
Offline Offline
Пол: Мужской
жить тоже опасно, говорят это смертельно


« Ответ #20 : 07-10-2010 05:19 » 

а ЖКК не тоже самое будет?, такую я нашел

Добавлено через 3 часа, 40 минут и 31 секунду:
а как реализовать такое:
 нажав на кнопку"Цеха" открывается справочник цеха(лежит он тут: Справочники.ИК_Цеха)?

Добавлено через 20 часов, 16 минут и 24 секунды:
все, спасибо, не надо, сделал

Добавлено через 1 час, 6 минут и 13 секунд:
новай проблема:хочу, чтобы выбранные элементы из справочника попадали в список "Цеха"...пытаюсь через ОбработкаПодбора,но, пока, ничего не выходит...как это сделать правильно?

Добавлено через 14 минут и 5 секунд:
все сделал...вошебный форум(мучаешься-мучаешься, заходишь в тупик - отписываешься сдесь и все сразу получается)Ага

Добавлено через 3 дня, 3 часа, 1 минуту и 40 секунд:
еще такой вопрос:

хочу, чтобы при нажатии первой кнопки открывался список с цехами(справочник.ИК_Цеха), из которого я добавляю нужные цеха в первый список(с идентификатором "подбор")
при нажатии второй кнопки должен открываться список с профессиями(справочник.Должности), из которого я добавляю нужные долности в другой список(с идентификатором "долности")

у меня пока только получается, что какой бы из двух справочников я не открыл, все выбранные из него поля добавляются в первый список, либо во все два одновременно. В чем моя ошибка?


Код:
Процедура Подбор(); 

ОткрытьПодбор("Справочник.ИК_Цеха", "ИК_Цеха");
КонецПроцедуры     
//**************************************************
Процедура Подбор2();


ОткрытьПодбор("Справочник.Должности", "Должности");
КонецПроцедуры           

//**************************************************
Процедура ОбработкаПодбора(Элемент,КонтФормы)
   
Если ПустоеЗначение(Элемент)=0 Тогда
Если Элемент.ЭтоГруппа()=0 Тогда
Если ИК_Цеха.НайтиЗначение(Элемент)=0 Тогда
ИК_Цеха.ДобавитьЗначение(Элемент,""+Элемент+?(Элемент.Наименование = Элемент,""," "));
Иначе
Предупреждение("Цех уже выбран в списке!",10);
КонецЕсли;                                           
КонецЕсли;
КонецЕсли;

//Если ПустоеЗначение(Элемент)=0 Тогда
// Если Элемент.ЭтоГруппа()=0 Тогда
// Если Должности.НайтиЗначение(Элемент)=0 Тогда
// Должности.ДобавитьЗначение(Элемент,""+Элемент+?(Элемент.Наименование = Элемент,""," "));
// Иначе
// Предупреждение("Профессия уже выбрана в списке!",10);
// КонецЕсли;                                           
// КонецЕсли;
// КонецЕсли;  // таким образом  добавляется в оба списка//
         
КонецПроцедуры // ОбработкаПодбора

//**************************************************   

    Процедура ОбработкаПодбора2(ЭЛ,Конт)


Если ПустоеЗначение(ЭЛ)=0 Тогда
Если ЭЛ.ЭтоГруппа()=0 Тогда
Если Должности.НайтиЗначение(ЭЛ)=0 Тогда
Должности.ДобавитьЗначение(ЭЛ.Наименование,"ЭЛ" );
Иначе
Предупреждение("Профессия уже выбрана в списке!",10);
КонецЕсли;                                           
КонецЕсли;
КонецЕсли;
         
КонецПроцедуры   //а так только в первый
 
« Последнее редактирование: 11-10-2010 09:38 от hiller » Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #21 : 06-05-2011 10:36 » 

Приветы форумчанам. Последую наблюдениям предшествинника отпишусь а форуме .... авось и я разберусь )

В программировании 1с новичек, но имею сильное желание вкурить этот язык.
ТЗ следующего рода: необходимо написать отчет,  в котором бы была возможность выбирать перемещения товара из оптовой точки в розничную. Таки
 есть нужда отследить чего мы, кому и в каких колличествах отправляем )
 Решил учиЦо сразу на ТЗ но чуть чуть его упростить, попытался сделать выборку по дате, Склад, СкладКуда (Делал через конструктор) вот что получилось, точнее НЕ получилось.
МБ просветлённые   гуру подскажут, в чем я не прав ? Улыбаюсь Заранее признателен ) 1с 7.7 скуль 2к на w2k3
(click to show)
Код:
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Перемещение = Документ.Перемещение.ТекущийДокумент;
|Склад = Документ.Перемещение.Склад;
|СкладКуда = Документ.Перемещение.СкладКуда;
|Группировка Перемещение упорядочить по Перемещение.Склад, Перемещение.СкладКуда, Перемещение.НомерДок, Перемещение.Фирма, Перемещение.Выгружен, Перемещение.Товар, Перемещение.Цена, Перемещение.Сумма;
|Условие(Склад = ВыбСклад);
|Условие(СкладКуда = ВыбСкладКуда);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Перемещение
Таб.ВывестиСекцию("Перемещение");
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
Записан
Kivals
Команда клуба

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

WWW
« Ответ #22 : 06-05-2011 14:09 » 

KolyaVasya, на первый взляд все Ок -  что не так?
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #23 : 07-05-2011 09:04 » 

Привет, форум и правда волшебный .... все запахало разобрался....
Стопанулся на том что не умею работать со СписокЗначений.
Как написать код чтобы в список значений по нажатию кнопки добавить открывался список товаров, из которого бы можно было добавить товар из Справочники.Номенклатура
Можно описать народ ?  Помогите новичку   Внимание! Говорит и показывает...
Наваял следующее:

Процедура КнДобавить ()
   Список = СоздатьОбъект("СписокЗначений");
     Товар = ОткрытьФорму("Справочник.Номенклатура.Наименование",,);
   // ОткрытьФорму("Справочник.Склады","Наши");
      ВыбТовар.ДобавитьЗначение(Товар);
КонецПроцедуры

Но в список добавляются единицы "1"

Записан
RXL
Технический
Администратор

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

WWW
« Ответ #24 : 07-05-2011 09:54 » 

KolyaVasya, не все так считают. Кто сам выполняет работу и только прочит помощи разобраться - тому хорошо, кто хочет халявы - уходит разочарованным.
Записан

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

ru
Offline Offline

« Ответ #25 : 07-05-2011 10:33 » 

KolyaVasya, не все так считают. Кто сам выполняет работу и только прочит помощи разобраться - тому хорошо, кто хочет халявы - уходит разочарованным.
Так с кнопкой и списком значений то не подскажешь ? Улыбаюсь
Записан
RXL
Технический
Администратор

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

WWW
« Ответ #26 : 07-05-2011 17:21 » 

Не - 1С не моя стезя. Могу только сказать, что 1С и не-1С - примерно одно и тоже, но одно на русском, а другое на английском. Короче, документацию надо смотреть: объекты, их свойства и методы.
Записан

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

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

WWW
« Ответ #27 : 09-05-2011 20:25 » 

KolyaVasya,


Процедура КнДобавить ()
   Список = СоздатьОбъект("СписокЗначений");
     Товар = ОткрытьФорму("Справочник.Номенклатура.Наименование",,);
   // ОткрытьФорму("Справочник.Склады","Наши");
      ВыбТовар.ДобавитьЗначение(Товар);
КонецПроцедуры

Но в список добавляются единицы "1"


Ты можешь объяснить, что здесь написано...
Я читаю, и не понимаю

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

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Kivals
Команда клуба

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

WWW
« Ответ #28 : 10-05-2011 05:12 » 

KolyaVasya, ага, ты точно перемудрил...
Похоже у тебя ВыбТовар - это список на форме? тогда "Список = СоздатьОбъект("СписокЗначений");" - не нужно.
А "1" добавляется потому, что ОткрытьФорму() "Возвращает: 1 - если действие выполнено, 0 - иначе."
В твоем случае можно использовать либо
Код:
ВвестиЗначение()
либо
Код:
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.Выбрать();
Можно, конечно, и через ОткрытьФорму(), но тогда нужно использовать предопределенную процедуру ОбработкаПодбора()
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #29 : 11-05-2011 05:14 » 

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

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines