HELP.
Нужна помощь
Надо чтоб строки в табличной части (например "Реализация товаров и услуг") меняли фон на другой цвет если документ был просмотрен на печать. Т.е. документы которые не распечатали - белые по умолчанию, а например зелёные которые распечатали.
1С:Предприятие 8.3 (8.3.8.1784)
"Управление торговлей для Украины", редакция 2.3
Очень жду Вашей помощи!!!
! | http://pro1c.org.ua/index.php?act=announce&id=2: 4 |
klevenets @ Сегодня, 14:26
,
Для начала нужно хранить признак того что документ был распечатан в самой базе. Для этого добавьте реквизит булевного типа в документ, например "Распечатан". При печати записывайте в этот реквизит "Распечатан" = Истина.
В форме списка документа, добавьте обработчик событий "ПриПолученииДанных" и в него добавьте следующий код
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);
КонецЦикла;
// Процедура печатает выбранный документ
// Печатается та форма, которая была отпечатана при нажатии в документе кнопки
// печати по умолчанию
//
Процедура ДействияФормыДействиеПечать(Кнопка)
Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено тогда
Возврат
КонецЕсли;
УниверсальныеМеханизмы.НапечататьДокументИзФормыСписка(ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока.ПолучитьОбъект());
КонецПроцедуры // ДействиеПечать()
// Процедура вызывается при выборе пункта подменю "Движения документа по регистрам" меню "Перейти".
// командной панели формы. Процедура отрабатывает печать движений документа по регистрам.
//
Процедура ДействияФормыДвиженияДокументаПоРегистрам(Кнопка)
Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено тогда
Возврат
КонецЕсли;
РаботаСДиалогами.НапечататьДвиженияДокумента(ЭлементыФормы.Список.ТекущиеДанные.Ссылка);
КонецПроцедуры // ДействияФормыДвиженияДокументаПоРегистрам()
// Процедура вызывается при выборе пункта подменю "Структура подчиненности" меню "Перейти".
Процедура ДействияФормыСтруктураПодчиненностиДокумента(Кнопка)
Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено тогда
Возврат
КонецЕсли;
РаботаСДиалогами.ПоказатьСтруктуруПодчиненностиДокумента(ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока);
КонецПроцедуры
// Обработчик события "Нажатие" кнопки "ОформитьДокументы" в верхней командной панели.
//
Процедура ДействияФормыОформитьДокументы(Кнопка)
ТекущаяСтрока = ЭлементыФормы.Список.ТекущиеДанные;
Если ТекущаяСтрока = Неопределено Тогда
Возврат
КонецЕсли;
ТекущийОбъект = ТекущаяСтрока.Ссылка.ПолучитьОбъект();
ФормаФормированияПакетаДокументов = ТекущийОбъект.ПолучитьФорму("ФормаФормированияПакетаДокументов", ЭтаФорма);
ФормаФормированияПакетаДокументов.Реализация = ТекущийОбъект;
ФормаФормированияПакетаДокументов.Открыть();
КонецПроцедуры // ДействияФормыОформитьДокументы()
// Процедура вызывается при нажатии кнопки "ВыгрузитьВФорматеComerceMLФайлПанель"
// подменю "ВыгрузитьВФорматеComerceMLПанель" командной панели формы
//
Процедура ДействияФормыВыгрузитьВФорматеCommerceMLФайлПанель(Кнопка)
Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнениеДокументов.ВыгрузитьДокументВФайлCommerceML(ЭлементыФормы.Список.ТекущиеДанные.Ссылка);
КонецПроцедуры
// Процедура вызывается при нажатии кнопки "ВыгрузитьВФорматеComerceMLЭлПочтаПанель"
// подменю "ВыгрузитьВФорматеComerceMLПанель" командной панели формы
//
Процедура ДействияФормыВыгрузитьВФорматеCommerceMLЭлПочтаПанель(Кнопка)
Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнениеДокументов.ОтправитьДокументПоПочтеCommerceML(ЭлементыФормы.Список.ТекущиеДанные.Ссылка);
КонецПроцедуры
Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
// Вставить содержимое обработчика.
КонецПроцедуры
! | http://pro1c.org.ua/index.php?act=announce&id=2: 9 |
sava1 @ Сегодня, 7:44
,
Я не совсем продвинутый - так методом тыка разбираюсь потихоньку/
Создал. но выдаёт ошибку уже в базе
Поле объекта не обнаружено (Распечатан)
{Документ.РеализацияТоваровУслуг.Форма.ФормаСписка.Форма(84)}: Поле объекта не обнаружено (Распечатан)
ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);
Может я что ни так делаю с этим - можете по подробней плиз
ЦИТАТА ВАША
"Для начала нужно хранить признак того что документ был распечатан в самой базе. Для этого добавьте реквизит булевного типа в документ, например "Распечатан". При печати записывайте в этот реквизит "Распечатан" = Истина."
klevenets @ Сегодня, 8:55
,
реквизит булевного типа в документ - я добаавил
как при печати записывайте в этот реквизит "Распечатан" = Истина."?
В модуле объекта найдите процедуру Печать и в конце добавьте -
Распечатан = Истина;
Записать();
klevenets @ Сегодня, 9:16
,
Найдите в модуле объекта документа процедуру печати соответствующей печатной формы и в этой процедуре добавьте кусочек кода который будет в момент печати устанавливать этот признак.
ДокОбъект = Ссылка.ПолучитьОбъект();
ДокОбъект.Распечатан = Истина;
ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
klevenets @ Сегодня, 10:17
,
Все уже описано выше.
Вот полный порядок действий для вас:
1. вам нужно добавить реквизит документа типа булево с именем "Распечатан" .
2. в конце процедуры печати документа необходимо добавить строки:
Распечатан = Истина;
Записать();
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);
КонецЦикла;
Sanguinius @ Сегодня, 11:19
,
всё делаю по Вашему списку
1 и 2
но при размещении данных - нет такого пункта "Распечатано", хотя реквизит добавил ("Распечатано" - Булево)
klevenets @ Сегодня, 11:38
,
и ошибка в базе
{Документ.РеализацияТоваровУслуг.Форма.ФормаСписка.Форма(88)}: Поле объекта не обнаружено (Распечатан)
ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);
klevenets @ Сегодня, 11:40
,
Ошибка как раз из за того что не добавлено.
Соблюдайте правильность имени реквизита и обращения к нему. Везде имя должно быть одинаковым "Распечатан".
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua