Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: СправочникСписок
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
brodovskiy
Доброе время суток!!!

имеется справочник:



нужно чтобы при изменении полей:
"на_постоянной_основе"
"внутреннее_совм"
"внешнее_совм"
"вакантно"

вычислялось поле "итого"


как это сделать?


Процедура СправочникСписокна_постоянной_основеПриИзменении(Элемент)
    итого=на_постоянной_основе+внутреннее_совм+внешнее_совм+вакантно;
КонецПроцедуры


этот код не работает, хотя аналогичный в форме элемента работает.




и еще вопрос: где добавить кнопку-переключатель "редактирование в диалоге/списке". не могу добавить. нет ее в списке выбора кнопок.

Заранее большое спасибо!!!
World1С
Вот в этом пункте нужно установить способ редактирования


по поводу текста, вроде так должно быть:
Процедура СправочникСписокна_постоянной_основеПриИзменении(Элемент)

ТекущаяСтрока = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;    

итого=ТекущаяСтрока.на_постоянной_основе+ТекущаяСтрока.внутреннее_совм+ТекущаяСт
рока.внешнее_совм+вакантно;
КонецПроцедуры
Batchir
Если "Итого" просто добавленная колонка, то вычислять нужно в событии ПриПолученииДанных.
Обходите все строки оформления и для каждой рассчитываете итоговое количество, программно закидываете это количество в ячейку

Если "Итого" реквизит справочника, то в Вашем случае сначало нужно получить строку данных и в неё закидывать рассчитанное "итого"

ТекДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
ТекДанные.итого=ТекДанные.на_постоянной_основе+ТекДанные.внутреннее_совм+ТекДанн
ые.внешнее_совм+ТекДанные.вакантно;
Vofka
brodovskiy, какой курс?
Zaval
Можно узнать цель такого праздника извратов?
Vofka
Цитата
Можно узнать цель такого праздника извратов?

Наверное курсовая или дипломная работа smile.gif
Zaval
Цитата(Vofka @ 24.05.11, 11:33) необходимо зарегистрироваться для просмотра ссылки
Наверное курсовая или дипломная работа smile.gif


Как бы соискателю за такое комп на голову не нахлобучили...
brodovskiy
Цитата(Vofka @ 24.05.11, 7:10) необходимо зарегистрироваться для просмотра ссылки
brodovskiy, какой курс?


5 курс. Диплом.

Batchir, большое спасибо. получилось у меня следующее :


Процедура СправочникСписокна_постоянной_основеПриИзменении(Элемент)
    ТекДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
    ТекДанные.итого=ТекДанные.на_постоянной_основе+ТекДанные.внутреннее_совм+Те
кДанные.внешнее_совм+ТекДанные.вакантно;
КонецПроцедуры

Процедура СправочникСписоквнутреннее_совмПриИзменении(Элемент)
    ТекДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
    ТекДанные.итого=ТекДанные.на_постоянной_основе+ТекДанные.внутреннее_совм+Те
кДанные.внешнее_совм+ТекДанные.вакантно;
КонецПроцедуры

Процедура СправочникСписоквнешнее_совмПриИзменении(Элемент)
    ТекДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
    ТекДанные.итого=ТекДанные.на_постоянной_основе+ТекДанные.внутреннее_совм+Те
кДанные.внешнее_совм+ТекДанные.вакантно;
КонецПроцедуры

Процедура СправочникСписокВакантноПриИзменении(Элемент)
    ТекДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
    ТекДанные.итого=ТекДанные.на_постоянной_основе+ТекДанные.внутреннее_совм+Те
кДанные.внешнее_совм+ТекДанные.вакантно;
КонецПроцедуры
logist
А что мешало сделать только одну процедуру? (понимаю что это не кошерно по мнению 1С, но все же)
brodovskiy
World1С, вам тоже большое спасибо.

остается вопрос:

как добавить кнопку-переключатель "редактирование в диалоге/списке" на форму списка. не могу добавить. нет ее в списке выбора кнопок.


World1С, мне необходимо обоими способами редактировать.

Цитата(logist @ 25.05.11, 16:02) необходимо зарегистрироваться для просмотра ссылки
А что мешало сделать только одну процедуру? (понимаю что это не кошерно по мнению 1С, но все же)



так проще и нагляднее.

Загляните, пожалуйста, вот сюда необходимо зарегистрироваться для просмотра ссылки.
вы мне там ответили, но я вас немного не понял.
logist
Цитата(brodovskiy @ 25.05.11, 16:19) необходимо зарегистрироваться для просмотра ссылки
так проще и нагляднее.

Может нагляднее (непонятно кому), но точно не проще. Уж куда лучше было бы так:
Процедура ПересчитатьИтоги()
    ТекДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
    ТекДанные.итого=ТекДанные.на_постоянной_основе+ТекДанные.внутреннее_совм+Те
кДанные.внешнее_совм+ТекДанные.вакантно;
КонецПроцедуры

Процедура СправочникСписокна_постоянной_основеПриИзменении(Элемент)
       Процедура ПересчитатьИтоги();
КонецПроцедуры

Процедура СправочникСписоквнутреннее_совмПриИзменении(Элемент)
       Процедура ПересчитатьИтоги();
КонецПроцедуры

Процедура СправочникСписоквнешнее_совмПриИзменении(Элемент)
       Процедура ПересчитатьИтоги();
КонецПроцедуры

Процедура СправочникСписокВакантноПриИзменении(Элемент)
       Процедура ПересчитатьИтоги();
КонецПроцедуры
Ardi
Цитата(brodovskiy @ 25.05.11, 17:19) необходимо зарегистрироваться для просмотра ссылки
остается вопрос:

как добавить кнопку-переключатель "редактирование в диалоге/списке" на форму списка. не могу добавить. нет ее в списке выбора кнопок.

Код кнопки
Процедура ДействияФормыпппп(Кнопка)
    Если элементыформы.СправочникСписок.СпособРедактирования=СпособРедактированияСписка.В
Диалоге Тогда
        элементыформы.СправочникСписок.СпособРедактирования=СпособРедактированияСпи
ска.ВСписке
    Иначе
        элементыформы.СправочникСписок.СпособРедактирования=СпособРедактированияСпи
ска.ВДиалоге
    КонецЕсли;
КонецПроцедуры
brodovskiy
Ardi, спасибо, все работает smile.gif
brodovskiy
Цитата(logist @ 25.05.11, 16:28) необходимо зарегистрироваться для просмотра ссылки
Может нагляднее (непонятно кому), но точно не проще. Уж куда лучше было бы так:
Процедура ПересчитатьИтоги()
    ТекДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
    ТекДанные.итого=ТекДанные.на_постоянной_основе+ТекДанные.внутреннее_совм+Те
кДанные.внешнее_совм+ТекДанные.вакантно;
КонецПроцедуры

Процедура СправочникСписокна_постоянной_основеПриИзменении(Элемент)
       Процедура ПересчитатьИтоги();
КонецПроцедуры


Согласен. так и сделал. только немного исправил(много объявлений процедуры):

Процедура СправочникСписокна_постоянной_основеПриИзменении(Элемент)
        ПересчитатьИтоги();
КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.