|
ПриВыводеСтроки, ПриПолученииДанных | ☑ | ||
---|---|---|---|---|
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) Спасибо ДобрыеЛюди! Подрасту немного и тоже буду помогать салагам, как я, уж очень это выручает, когда нужно!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |