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

Нужна помощь
Надо чтоб строки в табличной части (например "Реализация товаров и услуг") меняли фон на другой цвет если документ был просмотрен на печать. Т.е. документы которые не распечатали - белые по умолчанию, а например зелёные которые распечатали.

1С:Предприятие 8.3 (8.3.8.1784)
"Управление торговлей для Украины", редакция 2.3

Очень жду Вашей помощи!!!


 ! 

необходимо зарегистрироваться для просмотра ссылки: 4
 
Bernet
klevenets @ Сегодня, 14:26 необходимо зарегистрироваться для просмотра ссылки ,
Для начала нужно хранить признак того что документ был распечатан в самой базе. Для этого добавьте реквизит булевного типа в документ, например "Распечатан". При печати записывайте в этот реквизит "Распечатан" = Истина.
В форме списка документа, добавьте обработчик событий "ПриПолученииДанных" и в него добавьте следующий код
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
    ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);
КонецЦикла;
klevenets
Цитата(Bernet @ 11.11.18, 14:43) необходимо зарегистрироваться для просмотра ссылки
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
    ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);
КонецЦикла;

Bernet @ Вчера, 14:43 необходимо зарегистрироваться для просмотра ссылки ,

А куда вставить? Будь так любезны!!!!

//  Процедура печатает выбранный документ 
// Печатается та форма, которая была отпечатана при нажатии в документе кнопки
// печати по умолчанию
//
Процедура ДействияФормыДействиеПечать(Кнопка)

    Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено тогда
        Возврат
    КонецЕсли;

    УниверсальныеМеханизмы.НапечататьДокументИзФормыСписка(ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока.ПолучитьОбъект());

КонецПроцедуры // ДействиеПечать()

// Процедура вызывается при выборе пункта подменю "Движения документа по регистрам" меню "Перейти".
// командной панели формы. Процедура отрабатывает печать движений документа по регистрам.
//
Процедура ДействияФормыДвиженияДокументаПоРегистрам(Кнопка)

    Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено тогда
        Возврат
    КонецЕсли;

    РаботаСДиалогами.НапечататьДвиженияДокумента(ЭлементыФормы.Список.ТекущиеДанные.Ссылка);

КонецПроцедуры // ДействияФормыДвиженияДокументаПоРегистрам()

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

// Обработчик события "Нажатие" кнопки "ОформитьДокументы" в верхней командной панели.
//
Процедура ДействияФормыОформитьДокументы(Кнопка)

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

    Если ТекущаяСтрока = Неопределено Тогда
        Возврат
    КонецЕсли;

    ТекущийОбъект = ТекущаяСтрока.Ссылка.ПолучитьОбъект();
    ФормаФормированияПакетаДокументов = ТекущийОбъект.ПолучитьФорму("ФормаФормированияПакетаДокументов", ЭтаФорма);
    ФормаФормированияПакетаДокументов.Реализация = ТекущийОбъект;
    ФормаФормированияПакетаДокументов.Открыть();

КонецПроцедуры // ДействияФормыОформитьДокументы()

// Процедура вызывается при нажатии кнопки "ВыгрузитьВФорматеComerceMLФайлПанель"
// подменю "ВыгрузитьВФорматеComerceMLПанель" командной панели формы
//
Процедура ДействияФормыВыгрузитьВФорматеCommerceMLФайлПанель(Кнопка)
    
    Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    ЗаполнениеДокументов.ВыгрузитьДокументВФайлCommerceML(ЭлементыФормы.Список.ТекущиеДанные.Ссылка);
        
КонецПроцедуры

// Процедура вызывается при нажатии кнопки "ВыгрузитьВФорматеComerceMLЭлПочтаПанель"
// подменю "ВыгрузитьВФорматеComerceMLПанель" командной панели формы
//
Процедура ДействияФормыВыгрузитьВФорматеCommerceMLЭлПочтаПанель(Кнопка)
    
    Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    ЗаполнениеДокументов.ОтправитьДокументПоПочтеCommerceML(ЭлементыФормы.Список.ТекущиеДанные.Ссылка);

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

Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
    // Вставить содержимое обработчика.
КонецПроцедуры


Цитата(Bernet @ 11.11.18, 14:43) необходимо зарегистрироваться для просмотра ссылки
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
    ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);
КонецЦикла;


Вставляю в низу - пишет ошибку-

{Документ.РеализацияТоваровУслуг.Форма.ФормаСписка.Форма(86,33)}: Переменная не определена (ОформленияСтрок)
Для Каждого ОформлениеСтроки Из <<?>>ОформленияСтрок Цикл (Проверка: Толстый клиент (обычное приложение))


 ! 

необходимо зарегистрироваться для просмотра ссылки: 9
 
sava1
Цитата(Bernet @ 11.11.18, 14:43) необходимо зарегистрироваться для просмотра ссылки
В форме списка документа, добавьте обработчик событий "ПриПолученииДанных"

написано-ж
klevenets
sava1 @ Сегодня, 7:44 необходимо зарегистрироваться для просмотра ссылки ,


Я не совсем продвинутый - так методом тыка разбираюсь потихоньку/
Создал. но выдаёт ошибку уже в базе

Поле объекта не обнаружено (Распечатан)

{Документ.РеализацияТоваровУслуг.Форма.ФормаСписка.Форма(84)}: Поле объекта не обнаружено (Распечатан)
ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);


Может я что ни так делаю с этим - можете по подробней плиз

ЦИТАТА ВАША
"Для начала нужно хранить признак того что документ был распечатан в самой базе. Для этого добавьте реквизит булевного типа в документ, например "Распечатан". При печати записывайте в этот реквизит "Распечатан" = Истина."

klevenets @ Сегодня, 8:55 необходимо зарегистрироваться для просмотра ссылки ,



реквизит булевного типа в документ - я добаавил

как при печати записывайте в этот реквизит "Распечатан" = Истина."?
sava1
В модуле объекта найдите процедуру Печать и в конце добавьте -

Распечатан = Истина;
Записать();
Bernet
klevenets @ Сегодня, 9:16 необходимо зарегистрироваться для просмотра ссылки ,
Найдите в модуле объекта документа процедуру печати соответствующей печатной формы и в этой процедуре добавьте кусочек кода который будет в момент печати устанавливать этот признак.
ДокОбъект = Ссылка.ПолучитьОбъект();
ДокОбъект.Распечатан = Истина;
ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
klevenets
Bernet @ Сегодня, 9:28 необходимо зарегистрироваться для просмотра ссылки ,


Всё равно ошибка
пробовал и так и так.
Sanguinius
klevenets @ Сегодня, 10:17 необходимо зарегистрироваться для просмотра ссылки ,

Все уже описано выше.
Вот полный порядок действий для вас:
1. вам нужно добавить реквизит документа типа булево с именем "Распечатан" .
2. в конце процедуры печати документа необходимо добавить строки:
Распечатан = Истина;
Записать();

3. в форме списка, для табличного поля, добавить или дополнить стандартную процедуру "ПриПолученииДанных" (см. свойства табличного поля в форме).
Следующим кодом:
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
    ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);
КонецЦикла;

WebЦвета по точке можете менять по вкусу.
klevenets
Bernet @ Сегодня, 9:28 необходимо зарегистрироваться для просмотра ссылки ,


А если по тимвиверу - сможет показать?
Gazulo
klevenets @ Сегодня, 11:03 необходимо зарегистрироваться для просмотра ссылки ,
так
Sanguinius
Цитата(Sanguinius @ 12.11.18, 10:46) необходимо зарегистрироваться для просмотра ссылки
3. в форме списка

чуть не забыл, между 2 и 3 пунктом вам нужно разместить данный реквизит "распечатано" в табличном поле формы списка.
ПКМ по табличному полю - разместить данные. Если не хотите потом его видеть во время работы можете убрать потом признак видимости у добавленной колонки, работать все равно будет.
klevenets
Sanguinius @ Сегодня, 11:19 необходимо зарегистрироваться для просмотра ссылки ,

всё делаю по Вашему списку
1 и 2

но при размещении данных - нет такого пункта "Распечатано", хотя реквизит добавил ("Распечатано" - Булево)

klevenets @ Сегодня, 11:38 необходимо зарегистрироваться для просмотра ссылки ,

и ошибка в базе

{Документ.РеализацияТоваровУслуг.Форма.ФормаСписка.Форма(88)}: Поле объекта не обнаружено (Распечатан)
ОформлениеСтроки.ЦветФона = ?(ОформлениеСтроки.ДанныеСтроки.Ссылка.Распечатан, WebЦвета.СветлоЗеленый, WebЦвета.Белый);
Gazulo
klevenets @ Сегодня, 11:40 необходимо зарегистрироваться для просмотра ссылки ,
могу подключиться
Sanguinius
klevenets @ Сегодня, 11:40 необходимо зарегистрироваться для просмотра ссылки ,
Ошибка как раз из за того что не добавлено.



Соблюдайте правильность имени реквизита и обращения к нему. Везде имя должно быть одинаковым "Распечатан".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.