|   |   | 
| 
 | ПриВыводеСтроки, ПриПолученииДанных | ☑ | ||
|---|---|---|---|---|
| 0
    
        Droning1C 28.12.18✎ 10:55 | 
        Доброго времени суток! 
 проблема такова- при активации строки, при условии что ФлагАктивацииСтроки = истина; и ФлагРасчета = 1; в табличном поле должны заполняться определенные данные. Они заполняются, но при клике например на следующую строку табличного поля, предыдущие расчеты исчезают. А нужно, чтобы сохранялись. Параметры ОформленияСтроки и ОформлениеСтроки постоянно обнуляются по нужным мне показателям. например ДатаИзготовления. Подскажите, пожалуйста, что я делаю не так? Я уже пытался и в ПриВыводеСтроки все запихать, и что только не пробовал. ВОт полный текст модуля_ | |||
| 1
    
        Droning1C 28.12.18✎ 10:56 | 
        Перем ФлагРасчета; // 0 - не рассчитываем, 1 - рассчитываем один документ, 2 - рассчитываем все
 Перем ФлагАктивацииСтроки; // Истина - строку активизировали, Ложь - просто вывод строки Процедура ДействияФормыДействие12(Кнопка) Если элементыформы.Список.ТекущаяСтрока=неопределено Тогда возврат; КонецЕсли; обр=обработки.СводныеДанныеЗаказа.Создать(); обр.ЗаказПокупателя=элементыформы.Список.ТекущаяСтрока; фрм=обр.ПолучитьФорму(); фрм.открыть(); КонецПроцедуры // Процедура печатает выбранный документ // Печатается та форма, которая была отпечатана при нажатии в документе кнопки // печати по умолчанию // Процедура ДействияФормыДействиеПечать(Кнопка) Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено тогда Возврат КонецЕсли; УниверсальныеМеханизмы.НапечататьДокументИзФормыСписка(ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока.ПолучитьОбъект()); КонецПроцедуры // ДействиеПечать() // Процедура вызывается при выборе пункта подменю "Движения документа по регистрам" меню "Перейти". // командной панели формы. Процедура отрабатывает печать движений документа по регистрам. // Процедура ДействияФормыДвиженияДокументаПоРегистрам(Кнопка) Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено тогда Возврат КонецЕсли; РаботаСДиалогами.НапечататьДвиженияДокумента(ЭлементыФормы.Список.ТекущиеДанные.Ссылка); КонецПроцедуры // ДействияФормыДвиженияДокументаПоРегистрам() // Процедура вызывается при выборе пункта подменю "Структура подчиненности" меню "Перейти". Процедура ДействияФормыСтруктураПодчиненностиДокумента(Кнопка) Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено тогда Возврат КонецЕсли; РаботаСДиалогами.ПоказатьСтруктуруПодчиненностиДокумента(ЭлементыФормы.Список.ТекущиеДанные.Ссылка); КонецПроцедуры // Процедура вызывается при нажатии на кнопку "файлы" Процедура ДействияФормыФайлы(Кнопка) Если ЭлементыФормы.Список.ТекущаяСтрока = Неопределено Тогда Возврат; КонецЕсли; Ссылка = ЭлементыФормы.Список.ТекущаяСтрока.Ссылка; ФормаФайлов = Справочники.ХранилищеДополнительнойИнформации.ПолучитьФорму("ФормаСпискаФайловИИзображений", ЭтаФорма); ФормаФайлов.Изображения.Отбор.Объект.Использование = Истина; ФормаФайлов.Изображения.Отбор.Объект.Значение = Ссылка; ФормаФайлов.ЭлементыФормы.Изображения.НастройкаОтбора.Объект.Доступность = Ложь; ФормаФайлов.ЭлементыФормы.Изображения.Колонки.Объект.Видимость = Ложь; ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Использование = Истина; ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Значение = Ссылка; ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.НастройкаОтбора.Объект.Доступность = Ложь; ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.Колонки.Объект.Видимость = Ложь; ОбязательныеОтборы = Новый Структура; ОбязательныеОтборы.Вставить("Объект",Ссылка); ФормаФайлов.ОбязательныеОтборы = ОбязательныеОтборы; ФормаФайлов.Открыть(); КонецПроцедуры Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок) Если ЭлементыФормы.Список.Колонки.ОбособленныйУчет.Видимость Тогда УправлениеЗаказами.ВывестиПризнакОбособленныйУчетВФормуСписка(Элемент, ОформленияСтрок, новый Соответствие()); КонецЕсли; Если ФлагРасчета = 2 Тогда Соответствие = Новый Соответствие; СписокДокументов = Новый СписокЗначений; Для Каждого ТекОформление Из ОформленияСтрок Цикл Если Не ТекОформление.ДанныеСтроки = Неопределено Тогда Документ = ТекОформление.ДанныеСтроки.Ссылка; Соответствие.Вставить(ТекОформление.ДанныеСтроки.Ссылка, ТекОформление); СписокДокументов.Добавить(Документ); КонецЕсли; КонецЦикла; Результат = РассчитатьДанныеЗаказов(СписокДокументов); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Соответствие[Выборка.Сделка].Ячейки.Оплачено.Текст = ?(Выборка.Оплачено = 0, "", Формат(Выборка.Оплачено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Оплачено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Отгружено.Текст = ?(Выборка.Отгружено = 0, "", Формат(Выборка.Отгружено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Отгружено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Баланс.Текст = ?(Выборка.Баланс = 0, "", Формат(Выборка.Баланс,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Баланс.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.Текст = ?(Выборка.ДатаПереноса = Неопределено, "", Формат(Выборка.ДатаПереноса, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.Текст = ?(Выборка.ДатаИзготовления = Неопределено, "", Формат(Выборка.ДатаИзготовления, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ОтображатьТекст = Истина; Если Выборка.Баланс = 0 И Выборка.Оплачено <> 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Баланс > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Баланс < 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; Если Выборка.Оплачено = 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Оплачено > 0 И Выборка.Оплачено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Оплачено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Оплачено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если Выборка.Отгружено = 0 И Выборка.Оплачено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Отгружено > 0 И Выборка.Отгружено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Отгружено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Отгружено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если ЗначениеЗаполнено(Выборка.ДатаПереноса) Тогда Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры Процедура ДействияФормыДействиеАнализ(Кнопка) Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено тогда Возврат КонецЕсли; УправлениеЗаказами.СформироватьОтчетАнализЗаказа(ЭлементыФормы.Список.ТекущиеДанные.Ссылка,ложь, истина); КонецПроцедуры Процедура СписокПриАктивизацииСтроки(Элемент) Если НЕ ЭлементыФормы.Список.ТекущаяСтрока = Неопределено Тогда ЭлементыФормы.ДействияФормы.Кнопки.КнопкаПравкаЗапрещена.Текст = ДопМодуль.УстановитьИмяКнопкиПравкаЗапрещена(ЭлементыФормы.Список.ТекущаяСтрока.ПравкаЗапрещена); ЭлементыФормы.ДействияФормы.Кнопки.КнопкаПравкаЗапрещена.Доступность = УправлениеДопПравамиПользователей.УстановкаРеквизитаПравкаЗапрещена(); ДокументЗаказ = ЭлементыФормы.Список.ТекущаяСтрока.Ссылка; ТаблицаРеализаций = ПолучитьТаблицуРеализацийПоЗаказу(ДокументЗаказ); ТаблицаСчетов = ПолучитьТаблицуСчетовПоЗаказу(ДокументЗаказ); ЭлементыФормы.ТаблицаРеализаций.ОбновитьСтроки(); ЭлементыФормы.ТаблицаСчетов.ОбновитьСтроки(); ФлагАктивацииСтроки = Истина; ЭлементыФормы.Список.ОбновитьСтроки(ЭлементыФормы.Список.ТекущаяСтрока); КонецЕсли; Если Не ЭлементыФормы.Список.ТекущиеДанные = Неопределено Тогда тчСписокДоступныхСтатусов = Новый СписокЗначений(); тчСписокДоступныхСтатусов.Добавить(Перечисления.СтатусыЗаказаПокупателя.Аннулирован); Для Каждого тКнопка Из тчСписокДоступныхСтатусов Цикл ИндексЗначенияПеречисления = Перечисления.СтатусыЗаказаПокупателя.Индекс(тКнопка.Значение); ЗначениеПеречисления = Метаданные.Перечисления.СтатусыЗаказаПокупателя.ЗначенияПеречисления[ИндексЗначенияПеречисления]; Если ЗначениеПеречисления = Неопределено Тогда Продолжить; КонецЕсли; КнопкаДобавлена = ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВыбораСтатуса.Кнопки.Найти(ЗначениеПеречисления.Имя); Если КнопкаДобавлена = Неопределено Тогда ПунктМеню = ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВыбораСтатуса.Кнопки.Добавить(ЗначениеПеречисления.Имя, ТипКнопкиКоманднойПанели.Действие,ЗначениеПеречисления.Синоним, Новый Действие("ДействияФормыДействиеУстановитьСтатус")); ПунктМеню.ИзменяетДанные = Истина; ИначеЕсли Не КнопкаДобавлена = Неопределено Тогда //Кнопки = ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВыбораСтатуса.Кнопки; //ИндексКнопки = ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВыбораСтатуса.Кнопки.Индекс(КнопкаДобавлена); //Кнопки.Удалить(ИндексКнопки); КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры Процедура ДействияФормыДействиеУстановитьСтатус(Кнопка) Если НЕ Кнопка = Неопределено Тогда // найти новое значение вида операции Статус = Перечисления.СтатусыЗаказаПокупателя[Кнопка.Имя]; Иначе Возврат; КонецЕсли; Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено Тогда Возврат; КонецЕсли; Для Каждого Строка Из ЭлементыФормы.Список.ВыделенныеСтроки Цикл ДокументОбъект = Строка.ПолучитьОбъект(); Если Не ДопМодуль.ПроверкаКорректностиУстановкиСтатусаЗаказаПокупателя(Строка, Статус) Тогда Продолжить; КонецЕсли; Попытка ДокументОбъект.Заблокировать(); Исключение Сообщить("Невозможно изменить статус документа. Документ открыт другим пользователем."); Возврат; КонецПопытки; Комментарий = ""; ВвестиСтроку(Комментарий, "Введите причину аннулирования",,); НачатьТранзакцию(); ДопМодуль.УстановитьСтатусЗаказаПокупателя(Строка, Статус, Комментарий, глЗначениеПеременной("глТекущийПользователь")); ЗафиксироватьТранзакцию(); КонецЦикла; КонецПроцедуры Процедура ДействияФормыКнопкаПравкаЗапрещена(Кнопка) ДокОбъект = ЭлементыФормы.Список.ТекущаяСтрока.ПолучитьОбъект(); ДокОбъект.ПравкаЗапрещена = НЕ ДокОбъект.ПравкаЗапрещена; ДокОбъект.Записать(); ЭлементыФормы.ДействияФормы.Кнопки.КнопкаПравкаЗапрещена.Текст = ДопМодуль.УстановитьИмяКнопкиПравкаЗапрещена(ДокОбъект.ПравкаЗапрещена); КонецПроцедуры Процедура ДействияФормыДействиеРассчитыватьДокумент(Кнопка) Кнопка.Пометка = Не Кнопка.Пометка; ЭлементыФормы.ДействияФормы.Кнопки.ДействиеРассчитыватьВсеДокументы.Пометка = Ложь; Если Кнопка.Пометка Тогда ФлагРасчета = 1; ФлагАктивацииСтроки = Истина; ЭлементыФормы.Список.ОбновитьСтроки(ЭлементыФормы.Список.ТекущаяСтрока); Иначе ФлагРасчета = 0; КонецЕсли; КонецПроцедуры Процедура ДействияФормыДействиеРассчитыватьВсеДокументы(Кнопка) Кнопка.Пометка = Не Кнопка.Пометка; ЭлементыФормы.ДействияФормы.Кнопки.ДействиеРассчитыватьДокумент.Пометка = Ложь; Если Кнопка.Пометка Тогда ФлагРасчета = 2; Обновить(); Иначе ФлагРасчета = 0; КонецЕсли; КонецПроцедуры Функция РассчитатьДанныеЗаказов(СписокДокументов) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЗаказПокупателя.Ссылка КАК Сделка, | ЗаказПокупателя.ДокументОснование КАК ЗаказНаПроизводство |ПОМЕСТИТЬ втЗаказы |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя |ГДЕ | ЗаказПокупателя.Ссылка В(&СписокСделок) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | втЗаказы.Сделка, | СУММА(ЕСТЬNULL(взВзаиморасчеты.Оплачено, 0)) КАК Оплачено, | СУММА(ЕСТЬNULL(взВзаиморасчеты.Отгружено, 0)) КАК Отгружено, | СУММА(ЕСТЬNULL(взВзаиморасчеты.Баланс, 0)) КАК Баланс, | ЕСТЬNULL(взДатыПереноса.ДатаПереноса, НЕОПРЕДЕЛЕНО) КАК ДатаПереноса, | ЕСТЬNULL(втЗаказы.ЗаказНаПроизводство.ДатаИзготовления, НЕОПРЕДЕЛЕНО) КАК ДатаИзготовления |ИЗ | втЗаказы КАК втЗаказы | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка КАК Сделка, | СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход) КАК Оплачено, | СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход) КАК Отгружено, | СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток) КАК Баланс | ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(, , , , Сделка В (&СписокСделок)) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты | | СГРУППИРОВАТЬ ПО | ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка) КАК взВзаиморасчеты | ПО втЗаказы.Сделка = взВзаиморасчеты.Сделка | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ЖурналСобытийПоЗаказамСрезПоследних.Заказ КАК ЗаказНаПроизводство, | ЖурналСобытийПоЗаказамСрезПоследних.Значение КАК ДатаПереноса | ИЗ | РегистрСведений.ЖурналСобытийПоЗаказам.СрезПоследних( | , | Заказ В | (ВЫБРАТЬ | втЗаказы.ЗаказНаПроизводство | ИЗ | втЗаказы)) КАК ЖурналСобытийПоЗаказамСрезПоследних | ГДЕ | ЖурналСобытийПоЗаказамСрезПоследних.ТипСобытия = ""ИзменениеДатыИзготовления"") КАК взДатыПереноса | ПО втЗаказы.ЗаказНаПроизводство = взДатыПереноса.ЗаказНаПроизводство | |СГРУППИРОВАТЬ ПО | втЗаказы.Сделка, | ЕСТЬNULL(взДатыПереноса.ДатаПереноса, НЕОПРЕДЕЛЕНО), | ЕСТЬNULL(втЗаказы.ЗаказНаПроизводство.ДатаИзготовления, НЕОПРЕДЕЛЕНО)"; Запрос.УстановитьПараметр("СписокСделок", СписокДокументов); Возврат Запрос.Выполнить(); КонецФункции Процедура УстановитьПометкуКнопок() Если ФлагРасчета = 1 Тогда ЭлементыФормы.ДействияФормы.Кнопки.ДействиеРассчитыватьДокумент.Пометка = Истина; ИначеЕсли ФлагРасчета = 2 Тогда ЭлементыФормы.ДействияФормы.Кнопки.ДействиеРассчитыватьВсеДокументы.Пометка = Истина; КонецЕсли; КонецПроцедуры Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) СохранитьЗначение("ФлагРасчета",ФлагРасчета); КонецПроцедуры Процедура ПриОткрытии() ФлагРасчета = ВосстановитьЗначение("ФлагРасчета"); ФлагАктивацииСтроки = Ложь; УстановитьПометкуКнопок(); КонецПроцедуры Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ФлагРасчета = 1 И ФлагАктивацииСтроки И ДанныеСтроки.Ссылка = ЭлементыФормы.Список.ТекущаяСтрока Тогда СписокДокументов = Новый СписокЗначений; СписокДокументов.Добавить(ДанныеСтроки.Ссылка); Результат = РассчитатьДанныеЗаказов(СписокДокументов); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда ОформлениеСтроки.Ячейки.Оплачено.Текст = ?(Выборка.Оплачено = 0, "", Формат(Выборка.Оплачено,"ЧЦ=15; ЧДЦ=2")); ОформлениеСтроки.Ячейки.Оплачено.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.Отгружено.Текст = ?(Выборка.Отгружено = 0, "", Формат(Выборка.Отгружено,"ЧЦ=15; ЧДЦ=2")); ОформлениеСтроки.Ячейки.Отгружено.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.Баланс.Текст = ?(Выборка.Баланс = 0, "", Формат(Выборка.Баланс,"ЧЦ=15; ЧДЦ=2")); ОформлениеСтроки.Ячейки.Баланс.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.ДатаПереноса.Текст = ?(Выборка.ДатаПереноса = Неопределено, "", Формат(Выборка.ДатаПереноса, "ДФ=dd.MM.yyyy")); ОформлениеСтроки.Ячейки.ДатаПереноса.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.ДатаИзготовления.Текст = ?(Выборка.ДатаИзготовления = Неопределено, "", Формат(Выборка.ДатаИзготовления, "ДФ=dd.MM.yyyy")); ОформлениеСтроки.Ячейки.ДатаИзготовления.ОтображатьТекст = Истина; Если Выборка.Баланс = 0 И Выборка.Оплачено <> 0 И Выборка.Отгружено <> 0 Тогда ОформлениеСтроки.Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ОформлениеСтроки.Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Баланс > 0 Тогда ОформлениеСтроки.Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ОформлениеСтроки.Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Баланс < 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ОформлениеСтроки.Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; ОформлениеСтроки.Ячейки.Баланс.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; Если Выборка.Оплачено = 0 И Выборка.Отгружено <> 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Оплачено > 0 И Выборка.Оплачено < Выборка.Сделка.СуммаДокумента Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Оплачено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Оплачено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если Выборка.Отгружено = 0 И Выборка.Оплачено <> 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Отгружено > 0 И Выборка.Отгружено < Выборка.Сделка.СуммаДокумента Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Отгружено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Отгружено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если ЗначениеЗаполнено(Выборка.ДатаПереноса) Тогда ОформлениеСтроки.Ячейки.ДатаПереноса.ЦветФона = WebЦвета.СветлоРозовый; ОформлениеСтроки.Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; КонецЕсли; //ФлагАктивацииСтроки = Ложь; КонецЕсли; ЦветСтатуса = РегистрыСведений.НастройкаЦвета.Выбрать(Новый Структура("Владелец", ДанныеСтроки.СтатусЗаказа)); Если ЦветСтатуса.Следующий() Тогда ОформлениеСтроки.Ячейки.СтатусЗаказа.ЦветФона = ЦветСтатуса.Цвет.Получить(); КонецЕсли; КонецПроцедуры Процедура РеестрНомеровЗаказовПриИзменении(Элемент) Если ЗначениеЗаполнено(РеестрНомеровЗаказов) Тогда РеестрНомеровЗаказов = СтрЗаменить(РеестрНомеровЗаказов, Символ(182), " "); РеестрНомеровЗаказов = СтрЗаменить(РеестрНомеровЗаказов, Символ(10), " "); МассивНомеров = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(РеестрНомеровЗаказов, " "); Если НЕ МассивНомеров.Количество() = 0 Тогда СписокЗначенийОтбора = ПолучитьСписокЗаказовПоНомерам(МассивНомеров); ЭлементыФормы.КоличесвтоЗаказовДляОтбора.Значение = СписокЗначенийОтбора.Количество(); Отбор.ДокументОснование.ВидСравнения = ВидСравнения.ВСписке; Отбор.ДокументОснование.Значение = СписокЗначенийОтбора; Отбор.ДокументОснование.Использование = Истина; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура РеестрНомеровЗаказовОчистка(Элемент, СтандартнаяОбработка) Отбор.Номер.Использование = Ложь; ЭлементыФормы.КоличесвтоЗаказовДляОтбора.Значение = ""; КонецПроцедуры Функция ПолучитьСписокЗаказовПоНомерам(МассивНомеров) СписокЗаказов = Новый СписокЗначений(); Сч = 0; Пока Сч < МассивНомеров.Количество() Цикл ДокСсылка = Документы.ЗаказНаПроизводство.НайтиПоНомеру(СокрЛП(МассивНомеров[Сч]), ТекущаяДата()); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЗаказНаПроизводство.Ссылка КАК Заказ |ИЗ | Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство |ГДЕ | ЗаказНаПроизводство.Номер = &Номер | И ЗаказНаПроизводство.Дата > &ДатаДокумента"; Запрос.УстановитьПараметр("Номер", СокрЛП(МассивНомеров[Сч])); Запрос.УстановитьПараметр("ДатаДокумента", ТекущаяДата()-365*86400); ЗапросВыборка = Запрос.Выполнить().Выбрать(); Если ЗапросВыборка.Следующий() Тогда СписокЗаказов.Добавить(ЗапросВыборка.Заказ); КонецЕсли; //Если ЗначениеЗаполнено(ДокСсылка) Тогда // СписокЗаказов.Добавить(); //КонецЕсли; Сч = Сч + 1; КонецЦикла; Возврат СписокЗаказов; КонецФункции Процедура ДействияФормыДействиеПечатьНаПринтер(Кнопка) Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено Тогда Возврат; КонецЕсли; Для Каждого СтрокаСписка ИЗ ЭлементыФормы.Список.ВыделенныеСтроки Цикл УниверсальныеМеханизмы.НапечататьДокументПоУмолчанию(СтрокаСписка.ПолучитьОбъект(),1,Истина); КонецЦикла; КонецПроцедуры Процедура ДействияФормыДействиеПечатьНакладной(Кнопка) Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено Тогда Возврат; КонецЕсли; Для Каждого СтрокаСписка ИЗ ЭлементыФормы.Список.ВыделенныеСтроки Цикл ДокументыДляПечати = ПолучитьТаблицуРеализацийПоЗаказу(СтрокаСписка); Для Каждого СтрокаДокументыДляПечати Из ДокументыДляПечати Цикл УниверсальныеМеханизмы.НапечататьДокументПоУмолчанию(СтрокаДокументыДляПечати.Реализация.ПолучитьОбъект(),1, Ложь); КонецЦикла; КонецЦикла; КонецПроцедуры Процедура ДействияФормыДействиеПечатьНакладнойНаПринтер(Кнопка) Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено Тогда Возврат; КонецЕсли; Для Каждого СтрокаСписка ИЗ ЭлементыФормы.Список.ВыделенныеСтроки Цикл ДокументыДляПечати = ПолучитьТаблицуРеализацийПоЗаказу(СтрокаСписка); Для Каждого СтрокаДокументыДляПечати Из ДокументыДляПечати Цикл УниверсальныеМеханизмы.НапечататьДокументПоУмолчанию(СтрокаДокументыДляПечати.Реализация.ПолучитьОбъект(),2, Истина); КонецЦикла; КонецЦикла; КонецПроцедуры Процедура ДействияФормыДействиеСФ(Кнопка) Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено Тогда Возврат; КонецЕсли; Для Каждого СтрокаСписка ИЗ ЭлементыФормы.Список.ВыделенныеСтроки Цикл ДокументыДляПечати = ПолучитьТаблицуРеализацийПоЗаказу(СтрокаСписка); Для Каждого СтрокаДокументыДляПечати Из ДокументыДляПечати Цикл Если ЗначениеЗаполнено(СтрокаДокументыДляПечати.СчетФактура) Тогда УниверсальныеМеханизмы.НапечататьДокументПоУмолчанию(СтрокаДокументыДляПечати.СчетФактура.ПолучитьОбъект(),1, Ложь); КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры Процедура ДействияФормыДействиеПечатьСФНаПринтер(Кнопка) Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока = Неопределено Тогда Возврат; КонецЕсли; Для Каждого СтрокаСписка ИЗ ЭлементыФормы.Список.ВыделенныеСтроки Цикл ДокументыДляПечати = ПолучитьТаблицуРеализацийПоЗаказу(СтрокаСписка); Для Каждого СтрокаДокументыДляПечати Из ДокументыДляПечати Цикл Если ЗначениеЗаполнено(СтрокаДокументыДляПечати.СчетФактура) Тогда УниверсальныеМеханизмы.НапечататьДокументПоУмолчанию(СтрокаДокументыДляПечати.СчетФактура.ПолучитьОбъект(),2, Истина); КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры Функция ПолучитьТаблицуРеализацийПоЗаказу(ДокументЗаказ) Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | РеализацияТоваровУслуг.Проведен, | РеализацияТоваровУслуг.СтатусОтправителя КАК Статус, | РеализацияТоваровУслуг.Ссылка КАК Реализация, | РеализацияТоваровУслуг.Дата КАК ДокументДата, | РеализацияТоваровУслуг.Номер КАК ДокументНомер, | РеализацияТоваровУслуг.Контрагент КАК ДокументКонтрагент, | РеализацияТоваровУслуг.ДоговорКонтрагента КАК ДокументДоговор, | РеализацияТоваровУслуг.СуммаДокумента КАК Сумма, | РеализацияТоваровУслуг.СуммаДокумента1 КАК СуммаБух, | СчетФактураВыданный.Номер КАК СФ_Номер, | СчетФактураВыданный.Дата КАК СФ_Дата, | СчетФактураВыданный.Сумма КАК СФ_Сумма, | СчетФактураВыданный.Сумма1 КАК СФ_Сумма1, | СчетФактураВыданный.Ссылка КАК СчетФактура |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураВыданный | ПО РеализацияТоваровУслуг.Ссылка = СчетФактураВыданный.ДокументОснование |ГДЕ | РеализацияТоваровУслуг.Сделка = &Сделка | И РеализацияТоваровУслуг.ПометкаУдаления = ЛОЖЬ | |УПОРЯДОЧИТЬ ПО | ДокументДата УБЫВ"; Запрос.УстановитьПараметр("Сделка", ДокументЗаказ); Возврат Запрос.Выполнить().Выгрузить(); КонецФункции Функция ПолучитьТаблицуСчетовПоЗаказу(ДокументЗаказ) Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | КонтактнаяИнформация.Тип, | КонтактнаяИнформация.Вид, | КонтактнаяИнформация.Объект, | КонтактнаяИнформация.Представление |ПОМЕСТИТЬ втКонтактнаяИнформация |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Тип = &Тип | И КонтактнаяИнформация.Вид = &Вид |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | СчетНаОплатуПокупателю.Проведен, | СчетНаОплатуПокупателю.Статус, | СчетНаОплатуПокупателю.Ссылка КАК Счет, | СчетНаОплатуПокупателю.Дата КАК ДокументДата, | СчетНаОплатуПокупателю.Номер КАК ДокументНомер, | СчетНаОплатуПокупателю.Контрагент КАК ДокументКонтрагент, | СчетНаОплатуПокупателю.ДоговорКонтрагента КАК ДокументДоговор, | СчетНаОплатуПокупателю.СуммаДокумента КАК Сумма, | ЕСТЬNULL(втКонтактнаяИнформация.Представление, """") КАК Email |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю | ЛЕВОЕ СОЕДИНЕНИЕ втКонтактнаяИнформация КАК втКонтактнаяИнформация | ПО СчетНаОплатуПокупателю.Контрагент = втКонтактнаяИнформация.Объект |ГДЕ | СчетНаОплатуПокупателю.ПометкаУдаления = ЛОЖЬ | И СчетНаОплатуПокупателю.ЗаказПокупателя = &Сделка | |УПОРЯДОЧИТЬ ПО | ДокументДата УБЫВ"; Запрос.УстановитьПараметр("Сделка", ДокументЗаказ); Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты); Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.АдресЭлектроннойПочтыКонтрагентаДляОбменаДокументами); Возврат Запрос.Выполнить().Выгрузить(); КонецФункции Процедура ТаблицаРеализацийПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) ЦветСтатуса = РегистрыСведений.НастройкаЦвета.Выбрать(Новый Структура("Владелец", ДанныеСтроки.Статус)); Если ЦветСтатуса.Следующий() Тогда ОформлениеСтроки.Ячейки.Статус.ЦветФона = ЦветСтатуса.Цвет.Получить(); КонецЕсли; Если ЗначениеЗаполнено(ДанныеСтроки.Реализация) Тогда Если ДанныеСтроки.Реализация.Проведен Тогда ОформлениеСтроки.Ячейки.Реализация.ЦветФона = WebЦвета.СветлоЗеленый; ОформлениеСтроки.Ячейки.Проведен.ЦветФона = WebЦвета.СветлоЗеленый; Иначе ОформлениеСтроки.Ячейки.Реализация.ЦветФона = WebЦвета.СветлоЖелтый; ОформлениеСтроки.Ячейки.Проведен.ЦветФона = WebЦвета.СветлоЖелтый; КонецЕсли; КонецЕсли; Если ЗначениеЗаполнено(ДанныеСтроки.СчетФактура) Тогда Если ДанныеСтроки.СчетФактура.Проведен Тогда ОформлениеСтроки.Ячейки.СчетФактура.ЦветФона = WebЦвета.СветлоЗеленый; Иначе ОформлениеСтроки.Ячейки.СчетФактура.ЦветФона = WebЦвета.СветлоЖелтый; КонецЕсли; Иначе ОформлениеСтроки.Ячейки.СчетФактура.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; КонецПроцедуры Процедура ТаблицаСчетовПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) ЦветСтатуса = РегистрыСведений.НастройкаЦвета.Выбрать(Новый Структура("Владелец", ДанныеСтроки.Статус)); Если ЦветСтатуса.Следующий() Тогда ОформлениеСтроки.Ячейки.Статус.ЦветФона = ЦветСтатуса.Цвет.Получить(); КонецЕсли; КонецПроцедуры Процедура ДействияФорм | |||
| 2
    
        Droning1C 28.12.18✎ 10:58 | 
        вот отдельно процедуры ПриВыводеСтроки, ПриПолученииДанных и ПриАктивацииСтроки
 Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок) Если ЭлементыФормы.Список.Колонки.ОбособленныйУчет.Видимость Тогда УправлениеЗаказами.ВывестиПризнакОбособленныйУчетВФормуСписка(Элемент, ОформленияСтрок, новый Соответствие()); КонецЕсли; Если ФлагРасчета = 2 Тогда Соответствие = Новый Соответствие; СписокДокументов = Новый СписокЗначений; Для Каждого ТекОформление Из ОформленияСтрок Цикл Если Не ТекОформление.ДанныеСтроки = Неопределено Тогда Документ = ТекОформление.ДанныеСтроки.Ссылка; Соответствие.Вставить(ТекОформление.ДанныеСтроки.Ссылка, ТекОформление); СписокДокументов.Добавить(Документ); КонецЕсли; КонецЦикла; Результат = РассчитатьДанныеЗаказов(СписокДокументов); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Соответствие[Выборка.Сделка].Ячейки.Оплачено.Текст = ?(Выборка.Оплачено = 0, "", Формат(Выборка.Оплачено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Оплачено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Отгружено.Текст = ?(Выборка.Отгружено = 0, "", Формат(Выборка.Отгружено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Отгружено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Баланс.Текст = ?(Выборка.Баланс = 0, "", Формат(Выборка.Баланс,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Баланс.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.Текст = ?(Выборка.ДатаПереноса = Неопределено, "", Формат(Выборка.ДатаПереноса, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.Текст = ?(Выборка.ДатаИзготовления = Неопределено, "", Формат(Выборка.ДатаИзготовления, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ОтображатьТекст = Истина; Если Выборка.Баланс = 0 И Выборка.Оплачено <> 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Баланс > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Баланс < 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; Если Выборка.Оплачено = 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Оплачено > 0 И Выборка.Оплачено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Оплачено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Оплачено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если Выборка.Отгружено = 0 И Выборка.Оплачено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Отгружено > 0 И Выборка.Отгружено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Отгружено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Отгружено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если ЗначениеЗаполнено(Выборка.ДатаПереноса) Тогда Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры Процедура ДействияФормыДействиеАнализ(Кнопка) Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено тогда Возврат КонецЕсли; УправлениеЗаказами.СформироватьОтчетАнализЗаказа(ЭлементыФормы.Список.ТекущиеДанные.Ссылка,ложь, истина); КонецПроцедуры Процедура СписокПриАктивизацииСтроки(Элемент) Если НЕ ЭлементыФормы.Список.ТекущаяСтрока = Неопределено Тогда ЭлементыФормы.ДействияФормы.Кнопки.КнопкаПравкаЗапрещена.Текст = ДопМодуль.УстановитьИмяКнопкиПравкаЗапрещена(ЭлементыФормы.Список.ТекущаяСтрока.ПравкаЗапрещена); ЭлементыФормы.ДействияФормы.Кнопки.КнопкаПравкаЗапрещена.Доступность = УправлениеДопПравамиПользователей.УстановкаРеквизитаПравкаЗапрещена(); ДокументЗаказ = ЭлементыФормы.Список.ТекущаяСтрока.Ссылка; ТаблицаРеализаций = ПолучитьТаблицуРеализацийПоЗаказу(ДокументЗаказ); ТаблицаСчетов = ПолучитьТаблицуСчетовПоЗаказу(ДокументЗаказ); ЭлементыФормы.ТаблицаРеализаций.ОбновитьСтроки(); ЭлементыФормы.ТаблицаСчетов.ОбновитьСтроки(); ФлагАктивацииСтроки = Истина; ЭлементыФормы.Список.ОбновитьСтроки(ЭлементыФормы.Список.ТекущаяСтрока); КонецЕсли; Если Не ЭлементыФормы.Список.ТекущиеДанные = Неопределено Тогда тчСписокДоступныхСтатусов = Новый СписокЗначений(); тчСписокДоступныхСтатусов.Добавить(Перечисления.СтатусыЗаказаПокупателя.Аннулирован); Для Каждого тКнопка Из тчСписокДоступныхСтатусов Цикл ИндексЗначенияПеречисления = Перечисления.СтатусыЗаказаПокупателя.Индекс(тКнопка.Значение); ЗначениеПеречисления = Метаданные.Перечисления.СтатусыЗаказаПокупателя.ЗначенияПеречисления[ИндексЗначенияПеречисления]; Если ЗначениеПеречисления = Неопределено Тогда Продолжить; КонецЕсли; КнопкаДобавлена = ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВыбораСтатуса.Кнопки.Найти(ЗначениеПеречисления.Имя); Если КнопкаДобавлена = Неопределено Тогда ПунктМеню = ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВыбораСтатуса.Кнопки.Добавить(ЗначениеПеречисления.Имя, ТипКнопкиКоманднойПанели.Действие,ЗначениеПеречисления.Синоним, Новый Действие("ДействияФормыДействиеУстановитьСтатус")); ПунктМеню.ИзменяетДанные = Истина; ИначеЕсли Не КнопкаДобавлена = Неопределено Тогда //Кнопки = ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВыбораСтатуса.Кнопки; //ИндексКнопки = ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВыбораСтатуса.Кнопки.Индекс(КнопкаДобавлена); //Кнопки.Удалить(ИндексКнопки); КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ФлагРасчета = 1 И ФлагАктивацииСтроки И ДанныеСтроки.Ссылка = ЭлементыФормы.Список.ТекущаяСтрока Тогда СписокДокументов = Новый СписокЗначений; СписокДокументов.Добавить(ДанныеСтроки.Ссылка); Результат = РассчитатьДанныеЗаказов(СписокДокументов); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда ОформлениеСтроки.Ячейки.Оплачено.Текст = ?(Выборка.Оплачено = 0, "", Формат(Выборка.Оплачено,"ЧЦ=15; ЧДЦ=2")); ОформлениеСтроки.Ячейки.Оплачено.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.Отгружено.Текст = ?(Выборка.Отгружено = 0, "", Формат(Выборка.Отгружено,"ЧЦ=15; ЧДЦ=2")); ОформлениеСтроки.Ячейки.Отгружено.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.Баланс.Текст = ?(Выборка.Баланс = 0, "", Формат(Выборка.Баланс,"ЧЦ=15; ЧДЦ=2")); ОформлениеСтроки.Ячейки.Баланс.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.ДатаПереноса.Текст = ?(Выборка.ДатаПереноса = Неопределено, "", Формат(Выборка.ДатаПереноса, "ДФ=dd.MM.yyyy")); ОформлениеСтроки.Ячейки.ДатаПереноса.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.ДатаИзготовления.Текст = ?(Выборка.ДатаИзготовления = Неопределено, "", Формат(Выборка.ДатаИзготовления, "ДФ=dd.MM.yyyy")); ОформлениеСтроки.Ячейки.ДатаИзготовления.ОтображатьТекст = Истина; Если Выборка.Баланс = 0 И Выборка.Оплачено <> 0 И Выборка.Отгружено <> 0 Тогда ОформлениеСтроки.Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ОформлениеСтроки.Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Баланс > 0 Тогда ОформлениеСтроки.Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ОформлениеСтроки.Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Баланс < 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ОформлениеСтроки.Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; ОформлениеСтроки.Ячейки.Баланс.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; Если Выборка.Оплачено = 0 И Выборка.Отгружено <> 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Оплачено > 0 И Выборка.Оплачено < Выборка.Сделка.СуммаДокумента Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Оплачено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Оплачено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если Выборка.Отгружено = 0 И Выборка.Оплачено <> 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Отгружено > 0 И Выборка.Отгружено < Выборка.Сделка.СуммаДокумента Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Отгружено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Отгружено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда ОформлениеСтроки.Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если ЗначениеЗаполнено(Выборка.ДатаПереноса) Тогда ОформлениеСтроки.Ячейки.ДатаПереноса.ЦветФона = WebЦвета.СветлоРозовый; ОформлениеСтроки.Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; КонецЕсли; //ФлагАктивацииСтроки = Ложь; КонецЕсли; ЦветСтатуса = РегистрыСведений.НастройкаЦвета.Выбрать(Новый Структура("Владелец", ДанныеСтроки.СтатусЗаказа)); Если ЦветСтатуса.Следующий() Тогда ОформлениеСтроки.Ячейки.СтатусЗаказа.ЦветФона = ЦветСтатуса.Цвет.Получить(); КонецЕсли; КонецПроцедуры | |||
| 3
    
        Droning1C 28.12.18✎ 10:59 | 
        Данные должны заполняться в активированной строке     | |||
| 4
    
        ptiz 28.12.18✎ 10:59 | 
        (0) Колонка таб.поле только выводит связанные с ней данные, сама по себе она ничего не хранит.     | |||
| 5
    
        quest 28.12.18✎ 10:59 | 
        Оффтопик конечно, но интересно - ты правда веришь что это будут хотя-бы по диагонали просматривать?     | |||
| 6
    
        Droning1C 28.12.18✎ 11:02 | 
        (5) тут (2) специально отправил только 3 нужные процедуры     | |||
| 7
    
        Droning1C 28.12.18✎ 11:03 | 
        (4) ну допустим. тоесть сделать такое привыводестроки или приполученииданных нельзя? нужно делать впроцедуре приактивациистроки и записывать данные??     | |||
| 8
    
        quest 28.12.18✎ 11:03 | 
        РассчитатьДанныеЗаказов - прикрути ты это сразу к запросу в динамическом списке и не мучайся     | |||
| 9
    
        IOANNscrp 28.12.18✎ 11:04 | 
        Если ФлагРасчета = 1 И ФлагАктивацииСтроки И ДанныеСтроки.Ссылка = ЭлементыФормы.Список.ТекущаяСтрока Тогда
 Сравнение ссылка = текущаяСтрока губит все, при выводе данных происходит обработка всех строк отображаемых на форме, и под условие ссылка = текущая соответственно подходит только активная | |||
| 10
    
        Droning1C 28.12.18✎ 11:06 | 
        (4) что значит связанные данные? тоесть когда я присваюиваю ячейке текст эти данные не записываются в оформление, а только "ассоциируются" с этой ячейкой, выводятся а потом забываются?     | |||
| 11
    
        Droning1C 28.12.18✎ 11:09 | 
        (9) но ведь если я уберу это сравнение, то будет обработано все табполе? а мне нужно поочередно отобразить на форме расчеты активированных строк     | |||
| 12
    
        Droning1C 28.12.18✎ 11:09 | 
        (8) это конечно интересно, но опыта пока оч мало. изучу     | |||
| 13
    
        IOANNscrp 28.12.18✎ 11:10 | 
        (10) ничего не забывается. У Вас срабатывает обработчик при выводе строки, а у вас там условие, что обрабатывается только текущая строка (активная, выбранная пользователем). Крутите это условие     | |||
| 14
    
        IOANNscrp 28.12.18✎ 11:10 | 
        (13) соответственно предыдущие аннулируются     | |||
| 15
    
        Eiffil123 28.12.18✎ 11:11 | 
        (8) судя по названию процедур, это неуправляемые формы     | |||
| 16
    
        Droning1C 28.12.18✎ 11:12 | 
        (15) именно     | |||
| 17
    
        IOANNscrp 28.12.18✎ 11:12 | 
        (11) как вариант, не помню отрабатывает ли он, добавить в эту условие еще одно. Мол, если уже производились расчеты(заполнены колонки с текстом), то так же запускать в условие для расчета/перерасчета, иначе обнулит     | |||
| 18
    
        Droning1C 28.12.18✎ 11:14 | 
        (17) или может добавлять каждый раз отработанную ссылку в список значений. и в условие добавить, что если ссылка в списке, то отрабатывать по ней так же     | |||
| 19
    
        Droning1C 28.12.18✎ 11:14 | 
        (17) так норм?     | |||
| 20
    
        ptiz 28.12.18✎ 11:15 | 
        (10) Если у колонки заполнено свойство "Данные" - выводятся эти данные. Если нет - данных нет... Тогда рисуем текст при КАЖДОМ срабатывании ПриВыводеСтроки() или ПриПолученииДанных()     | |||
| 21
    
        IOANNscrp 28.12.18✎ 11:16 | 
        (19) В принципе как альтернатива, чтобы работало да:D     | |||
| 22
    
        Droning1C 28.12.18✎ 11:17 | 
        всем спасибо, сейчас буду пробовать!     | |||
| 23
    
        Droning1C 28.12.18✎ 11:28 | 
        (20) только вот где этот код писать? при кативации строки?     | |||
| 24
    
        ptiz 28.12.18✎ 11:31 | 
        Без разницы.
 ПриПолученииДанных удобнее тем, что если требуется выплнить запрос - можно сделать один запрос по группе строк, которые попали в эту процедуру. | |||
| 25
    
        ptiz 28.12.18✎ 11:31 | 
        Т.е. рисуешь там, где доступно ОФормлениеСтроки:
 ПриВыводеСтроки() или ПриПолученииДанных() | |||
| 26
    
        Droning1C 28.12.18✎ 11:54 | 
        Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
 Если ЭлементыФормы.Список.Колонки.ОбособленныйУчет.Видимость Тогда УправлениеЗаказами.ВывестиПризнакОбособленныйУчетВФормуСписка(Элемент, ОформленияСтрок, новый Соответствие()); КонецЕсли; Если ФлагРасчета = 1 Тогда Соответствие = Новый Соответствие; СписокДокументов = Новый СписокЗначений; Для Каждого ТекОформление Из ОформленияСтрок Цикл Если Элемент.ТекущиеДанные.Ссылка = ТекОформление.ДанныеСтроки.Ссылка Или ЗначениеЗаполнено(ТекОформление.Ячейки.ДатаИзготовления.Текст) Тогда Документ = ТекОформление.ДанныеСтроки.Ссылка; Соответствие.Вставить(ТекОформление.ДанныеСтроки.Ссылка, ТекОформление); СписокДокументов.Добавить(Документ); КонецЕсли; КонецЦикла; Результат = РассчитатьДанныеЗаказов(СписокДокументов); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Соответствие[Выборка.Сделка].Ячейки.Оплачено.Текст = ?(Выборка.Оплачено = 0, "", Формат(Выборка.Оплачено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Оплачено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Отгружено.Текст = ?(Выборка.Отгружено = 0, "", Формат(Выборка.Отгружено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Отгружено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Баланс.Текст = ?(Выборка.Баланс = 0, "", Формат(Выборка.Баланс,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Баланс.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.Текст = ?(Выборка.ДатаПереноса = Неопределено, "", Формат(Выборка.ДатаПереноса, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.Текст = ?(Выборка.ДатаИзготовления = Неопределено, "", Формат(Выборка.ДатаИзготовления, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ОтображатьТекст = Истина; Если Выборка.Баланс = 0 И Выборка.Оплачено <> 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Баланс > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Баланс < 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; Если Выборка.Оплачено = 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Оплачено > 0 И Выборка.Оплачено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Оплачено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Оплачено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если Выборка.Отгружено = 0 И Выборка.Оплачено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Отгружено > 0 И Выборка.Отгружено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Отгружено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Отгружено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если ЗначениеЗаполнено(Выборка.ДатаПереноса) Тогда Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; КонецЦикла; КонецЕсли; Если ФлагРасчета = 2 Тогда Соответствие = Новый Соответствие; СписокДокументов = Новый СписокЗначений; Для Каждого ТекОформление Из ОформленияСтрок Цикл Если Не ТекОформление.ДанныеСтроки = Неопределено Тогда Документ = ТекОформление.ДанныеСтроки.Ссылка; Соответствие.Вставить(ТекОформление.ДанныеСтроки.Ссылка, ТекОформление); СписокДокументов.Добавить(Документ); КонецЕсли; КонецЦикла; Результат = РассчитатьДанныеЗаказов(СписокДокументов); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Соответствие[Выборка.Сделка].Ячейки.Оплачено.Текст = ?(Выборка.Оплачено = 0, "", Формат(Выборка.Оплачено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Оплачено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Отгружено.Текст = ?(Выборка.Отгружено = 0, "", Формат(Выборка.Отгружено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Отгружено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Баланс.Текст = ?(Выборка.Баланс = 0, "", Формат(Выборка.Баланс,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Баланс.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.Текст = ?(Выборка.ДатаПереноса = Неопределено, "", Формат(Выборка.ДатаПереноса, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.Текст = ?(Выборка.ДатаИзготовления = Неопределено, "", Формат(Выборка.ДатаИзготовления, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ОтображатьТекст = Истина; Если Выборка.Баланс = 0 И Выборка.Оплачено <> 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Баланс > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Баланс < 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; Если Выборка.Оплачено = 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Оплачено > 0 И Выборка.Оплачено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Оплачено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Оплачено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если Выборка.Отгружено = 0 И Выборка.Оплачено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Отгружено > 0 И Выборка.Отгружено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Отгружено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Отгружено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если ЗначениеЗаполнено(Выборка.ДатаПереноса) Тогда Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры | |||
| 27
    
        Droning1C 28.12.18✎ 11:55 | 
        пытаюсь сделать как-то так. Привыводестроки вообще убрал. Но текущиеДанные недоступны при открытии формы, ибо курсор еще не стоит ни на одной строке. как быть? Или может я вообще неверный подход выбрал?     | |||
| 28
    
        Droning1C 28.12.18✎ 11:55 | 
        Если Элемент.ТекущиеДанные.Ссылка = ТекОформление.ДанныеСтроки.Ссылка Или ЗначениеЗаполнено(ТекОформление.Ячейки.ДатаИзготовления.Текст) Тогда 
 Выдает ошибку | |||
| 29
    
        Droning1C 28.12.18✎ 11:58 | 
        ну ладнО, это можно победить добавлением условия Если Не Элемент.ТекущиеДанные = Неопределено.     Но в остальном то правильно?     | |||
| 30
    
        Droning1C 28.12.18✎ 12:01 | 
        Для Каждого ТекОформление Из ОформленияСтрок Цикл
 Если Не Элемент.ТекущиеДанные = Неопределено Тогда Если Элемент.ТекущиеДанные.Ссылка = ТекОформление.ДанныеСтроки.Ссылка Или ЗначениеЗаполнено(ТекОформление.Ячейки.ДатаИзготовления.Текст) Тогда Документ = ТекОформление.ДанныеСтроки.Ссылка; Соответствие.Вставить(ТекОформление.ДанныеСтроки.Ссылка, ТекОформление); СписокДокументов.Добавить(Документ); КонецЕсли; КонецЕсли; КонецЦикла; Результат = РассчитатьДанныеЗаказов(СписокДокументов); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Соответствие[Выборка.Сделка].Ячейки.Оплачено.Текст = ?(Выборка.Оплачено = 0, "", Формат(Выборка.Оплачено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Оплачено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Отгружено.Текст = ?(Выборка.Отгружено = 0, "", Формат(Выборка.Отгружено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Отгружено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Баланс.Текст = ?(Выборка.Баланс = 0, "", Формат(Выборка.Баланс,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Баланс.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.Текст = ?(Выборка.ДатаПереноса = Неопределено, "", Формат(Выборка.ДатаПереноса, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.Текст = ?(Выборка.ДатаИзготовления = Неопределено, "", Формат(Выборка.ДатаИзготовления, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ОтображатьТекст = Истина; Если Выборка.Баланс = 0 И Выборка.Оплачено <> 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Баланс > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Баланс < 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; Если Выборка.Оплачено = 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Оплачено > 0 И Выборка.Оплачено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Оплачено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Оплачено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если Выборка.Отгружено = 0 И Выборка.Оплачено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Отгружено > 0 И Выборка.Отгружено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Отгружено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Отгружено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если ЗначениеЗаполнено(Выборка.ДатаПереноса) Тогда Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; КонецЦикла; КонецЕсли; | |||
| 31
    
        Droning1C 28.12.18✎ 12:02 | 
        вот так не отрабатывает, все равно по одной строке выводит     | |||
| 32
    
        IOANNscrp 28.12.18✎ 12:02 | 
        (29) Нюанс может быть, что ДатаИзготовления.Текст может не содержать значение, поэтому стоит проверить через отладку     | |||
| 33
    
        Droning1C 28.12.18✎ 12:08 | 
        (32) ну поэтому и не заполняется. значения там нет. Видимо это значение не сохраняется... Как быть?     | |||
| 34
    
        Droning1C 28.12.18✎ 12:11 | 
        (20) делаю приполученииданных. как сделать так, чтобы в запрос попали ссылки и с активированного документа и с тех, у которых уже заполнена ДатаИзготовления? Вот в чем сложность     | |||
| 35
    
        IOANNscrp 28.12.18✎ 12:13 | 
        (33) Или ЗначениеЗаполнено(ТекОформление.Ячейки.ДатаИзготовления.Текст) // это убираем
 СписокДокументов // объявляем как переменную модуля/формы или что там у Вас и не очищаем, У вас все равно в функцию выборки передается этот список Поэтому ПриАктивацииСтроки помещаете в списокДокументов. А процедуру при получении оставляете той же | |||
| 36
    
        IOANNscrp 28.12.18✎ 12:21 | 
        Перем СписокДокументов;
 Процедура ПриАктивизацииСтроки() ТекСтр = Элементы.Список.ТекущаяСтрока; Если ТекСтр <> Неопределено Тогда СписокДокументов.Добавить(текстр.ссылка); КонецЕсли; КонецПроцедуры Процедура ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Результат =СписокДокументов.НайтиПоЗначению(ДанныеСтроки.Ссылка);//Если СписокДокументов - список значений Если Результат <> Неопределено Тогда // выполняете свои процедуры по заполнению КонецЕсли; КонецПроцедуры | |||
| 37
    
        IOANNscrp 28.12.18✎ 12:24 | 
        Перем СписокДокументов;
 Процедура ПриАктивизацииСтроки() ТекСтр = Элементы.Список.ТекущаяСтрока; Если ТекСтр <> Неопределено Тогда СписокДокументов.Добавить(текстр.ссылка); КонецЕсли; КонецПроцедуры Процедура ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Результат =СписокДокументов.НайтиПоЗначению(ДанныеСтроки.Ссылка)//Если СписокДокументов - список значений Если Результат <> Неопределено Тогда // выполняете свои процедуры по заполнению КонецЕсли; КонецПроцедуры СписокДокументов = новый СписокЗначений; | |||
| 38
    
        Droning1C 28.12.18✎ 12:36 | 
        (37) объявил как вы сказали переменную, но выдает ошибку  {Документ.ЗаказПокупателя.Форма.ктФормаСписка.Форма(269)}: Значение не является значением объектного типа (Добавить)
 СписокДокументов.Добавить(ТекСтр.Ссылка); | |||
| 39
    
        IOANNscrp 28.12.18✎ 12:38 | 
        (38) в конце модуля определить тип как списокЗначений см. (37) конец кода     | |||
| 40
    
        IOANNscrp 28.12.18✎ 12:39 | 
        СписокДокументов = новый СписокЗначений;     | |||
| 41
    
        Droning1C 28.12.18✎ 12:40 | 
        спасибо! (40) Скажите, пожалуйста, а сколько вы уже занимаетесь программированием на 1с, если не секрет?     | |||
| 42
    
        IOANNscrp 28.12.18✎ 12:49 | 
        (41) Не секрет) с ноября 2016     | |||
| 43
    
        Droning1C 28.12.18✎ 12:51 | 
        (42) Документ.ЗаказПокупателя.Форма.ктФормаСписка.Форма(105)}: Значение не является значением объектного типа (Ячейки)
 Соответствие[Выборка.Сделка].Ячейки.Оплачено.Текст = ?(Выборка.Оплачено = 0, "", Формат(Выборка.Оплачено,"ЧЦ=15; ЧДЦ=2")); | |||
| 44
    
        Droning1C 28.12.18✎ 12:52 | 
        (42) ячейки начали заполняться, но постоянно выдаются такие ошибки     | |||
| 45
    
        Droning1C 28.12.18✎ 12:52 | 
        (42) я через приполучении данных решил)     | |||
| 46
    
        IOANNscrp 28.12.18✎ 12:55 | 
        (44) 
 Результат =СписокДокументов.НайтиПоЗначению(ДанныеСтроки.Ссылка) Если Результат <> Неопределено Тогда Соответствие.Вставить(Результат.Значение, ОформлениеСтроки); КонецЕсли; | |||
| 47
    
        hhhh 28.12.18✎ 13:01 | 
        (45) соответствия выкинь. Делай выборку как таблица значений
 Выборка = Результат.Выгрузить(); | |||
| 48
    
        Droning1C 28.12.18✎ 13:02 | 
        (46) у меня результат это результат выполнения запроса. Результат.Значение не прокатывает     | |||
| 49
    
        Droning1C 28.12.18✎ 13:03 | 
        вообще почему такая ошибка возникает, если соответствие заполнено?     | |||
| 50
    
        IOANNscrp 28.12.18✎ 13:08 | 
        (48) так задайте другое имя переменной))     | |||
| 51
    
        Droning1C 28.12.18✎ 13:10 | 
        это я понимаю, я не понимаю, что вы этим хотите добиться... (50)     | |||
| 52
    
        Droning1C 28.12.18✎ 13:10 | 
        сейчас процедура выглядит так   
 Если ФлагРасчета = 1 Тогда Соответствие = Новый Соответствие; Для Каждого ТекОформление Из ОформленияСтрок Цикл Если Не Элемент.ТекущиеДанные = Неопределено Тогда Соответствие.Вставить(ТекОформление.ДанныеСтроки.Ссылка, ТекОформление); КонецЕсли; КонецЦикла; Результат = РассчитатьДанныеЗаказов(СписокДокументов); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Соответствие[Выборка.Сделка].Ячейки.Оплачено.Текст = ?(Выборка.Оплачено = 0, "", Формат(Выборка.Оплачено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Оплачено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Отгружено.Текст = ?(Выборка.Отгружено = 0, "", Формат(Выборка.Отгружено,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Отгружено.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.Баланс.Текст = ?(Выборка.Баланс = 0, "", Формат(Выборка.Баланс,"ЧЦ=15; ЧДЦ=2")); Соответствие[Выборка.Сделка].Ячейки.Баланс.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.Текст = ?(Выборка.ДатаПереноса = Неопределено, "", Формат(Выборка.ДатаПереноса, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаПереноса.ОтображатьТекст = Истина; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.Текст = ?(Выборка.ДатаИзготовления = Неопределено, "", Формат(Выборка.ДатаИзготовления, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.Значение = ?(Выборка.ДатаИзготовления = Неопределено, "", Формат(Выборка.ДатаИзготовления, "ДФ=dd.MM.yyyy")); Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ОтображатьТекст = Истина; Если Выборка.Баланс = 0 И Выборка.Оплачено <> 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Баланс > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Баланс < 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.Баланс.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; Если Выборка.Оплачено = 0 И Выборка.Отгружено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Оплачено > 0 И Выборка.Оплачено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Оплачено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Оплачено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Оплачено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если Выборка.Отгружено = 0 И Выборка.Оплачено <> 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоРозовый; ИначеЕсли Выборка.Отгружено > 0 И Выборка.Отгружено < Выборка.Сделка.СуммаДокумента Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЖелтый; ИначеЕсли Выборка.Отгружено = Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; ИначеЕсли Выборка.Отгружено > Выборка.Сделка.СуммаДокумента И Выборка.Сделка.СуммаДокумента > 0 Тогда Соответствие[Выборка.Сделка].Ячейки.Отгружено.ЦветФона = WebЦвета.СветлоЗеленый; КонецЕсли; Если ЗначениеЗаполнено(Выборка.ДатаПереноса) Тогда Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; Соответствие[Выборка.Сделка].Ячейки.ДатаИзготовления.ЦветФона = WebЦвета.СветлоРозовый; КонецЕсли; КонецЦикла; КонецЕсли; | |||
| 53
    
        Droning1C 28.12.18✎ 13:10 | 
        и Это ПриПолученииДанных     | |||
| 54
    
        Droning1C 28.12.18✎ 13:11 | 
        не могу понять. как вы хотите, чтобы она выглядила с вашими правками?     | |||
| 55
    
        Droning1C 28.12.18✎ 13:12 | 
        (50) я дико извиняюсь, может я конкретно туплю, но когда сидишь над одной задачей часов 6, глаз замыливается(     | |||
| 56
    
        hhhh 28.12.18✎ 13:13 | 
        (47) + типа так
 СтрВ = Выборка.Найти(ОформлениеСтроки.ДанныеСтроки.Ссылка, "Документ"); ОформлениеСтроки.Ячейки.Оплачено.Текст = ?(СтрВ.Оплачено = 0, "", Формат(СтрВ.Оплачено,"ЧЦ=15; ЧДЦ=2")); ОформлениеСтроки.Ячейки.ДатаИзготовления.Текст = ?(СтрВ.ДатаИзготовления = Неопределено, "", Формат(СтрВ.ДатаИзготовления, "ДФ=dd.MM.yyyy")); | |||
| 57
    
        IOANNscrp 28.12.18✎ 13:23 | 
        Результат = РассчитатьДанныеЗаказов(СписокДокументов);
 Выборка = Результат.Выгрузить(); Для Каждого ТекОформление Из ОформленияСтрок Цикл Если Не Элемент.ТекущиеДанные = Неопределено и (Элемент.ТекущиеДанные = ТекОформление.ДанныеСтроки.Ссылка или Выборка.Найти(ТекОформление.ДанныеСтроки.Ссылка, "Документ")<> Неопределено Тогда ТекОформление .Ячейки.Оплачено.Текст = ?(Выборка.Найти(ТекОформление.ДанныеСтроки.Ссылка, "Документ").Оплачено = 0, "", Формат(Выборка.Найти(ТекОформление.ДанныеСтроки.Ссылка, "Документ").Оплачено,"ЧЦ=15; ЧДЦ=2")); КонецЕсли; КонецЦикла; | |||
| 58
    
        IOANNscrp 28.12.18✎ 13:24 | 
        Где-то над оптимизацией и тд подумать, а так должен код рабочим быть     | |||
| 59
    
        Droning1C 28.12.18✎ 13:35 | 
        {Документ.ЗаказПокупателя.Форма.ктФормаСписка.Форма(106)}: Преобразование значения к типу Булево не может быть выполнено
 Если Не Элемент.ТекущиеДанные = Неопределено и (Элемент.ТекущиеДанные = ТекОформление.ДанныеСтроки.Ссылка или Выборка.Найти(ТекОформление.ДанныеСтроки.Ссылка, "Сделка"))<> Неопределено Тогда | |||
| 60
    
        IOANNscrp 28.12.18✎ 13:38 | 
        еще раз полный код процедуры при получении данных предоставьте)     | |||
| 61
    
        Droning1C 28.12.18✎ 13:38 | 
        Алелуйя!!!!!!!!!!!!!!!! Работает!!!!!!!!!!!!!!!!!!!!     | |||
| 62
    
        Droning1C 28.12.18✎ 13:39 | 
        скобочки убрал)     | |||
| 63
    
        Droning1C 28.12.18✎ 13:39 | 
        Если Не Элемент.ТекущиеДанные = Неопределено и Элемент.ТекущиеДанные = ТекОформление.ДанныеСтроки.Ссылка или Выборка.Найти(ТекОформление.ДанныеСтроки.Ссылка, "Сделка"<> Неопределено
 вот так | |||
| 64
    
        IOANNscrp 28.12.18✎ 13:40 | 
        Начало положено :D     | |||
| 65
    
        Droning1C 28.12.18✎ 13:40 | 
        (60) (56) Спасибо ДобрыеЛюди!   Подрасту немного и тоже буду помогать салагам, как я, уж очень это выручает, когда нужно!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |