Здравствуйте, не могу понять, раньше в толстом клиенте оператор Новый - ничем не мешал, сейчас хоть данные и доступны на клиенте, но я не пойму как ими воспользоваться
В форме документа в процедуре на клиенте:
Элемент.ПодчиненныеЭлементы.ТЧСписокДокументовВыбран.ЦветФона = Новый Цвет(1,1,1);
сколько вожусь над оператором Новый.. не прокатывает, пишет - несоответствие типов, хотя в отладке видит
Из отладчика: Свойство - вид, Значение - автоцвет, Тип - ВидЦвета
так же в свойствах есть: Зеленый, красный и синий с типом Число.. подскажите пожалуйста как ими воспользоваться
(1) Bukaska,
в управляемой форме есть такая штука, как условное оформление.
притянута в управляемую форму из системы компоновки данных.
попробуй покрасить "ячейки" с его помощью.
(2) Rothschild, в бух 2.0 в толстом клиенте было такое
Была в функция передана переменная: ОформлениеСтрок
и от неё отталкивались: ОформлениеСтрок.Ячейки.ЦветФона = ...
А тут все по другому....Нашла совсем в другой переменной цвет фона
(4) jigourt, Я тоже что-то обращалана то, что ПриВыводеСтроки()
Но выделяю ТабличнуюЧасть и выбираю Свойства, там в командах нет обработчиков ПриВыводеСтроки(), есть только ПриАктивацииСтроки()
Или команду нужно искать глобально в свойствах Формы? А то я выделила нужную ТабличнуюЧасть, но там в обработчиках как таковой нет?
(6) jigourt, То есть чисто через условное оформление в свойствах формы?
завтра я там пороюсь, если что, буду доспрашивать)))
А то я роюсь и ищу несуществующие обработчики, как ... почему как...
(7) Да, да, да. В управляемом приложении вся раскраска списка и прочие радости происходит через условное оформление формы. Почитайте уже книжку по разработке управляемого интерфейса.
(13) Rothschild, да это -то я видела, вопрос в том, как пометить документ из списка документов табличной части красным цветом, если он был помечен на удаление?
При чем пометить достаточно в одной графе: Выбран, где булевская галочка.Сформировали на один документ сразу три(счет, Акт и счетФактуру). Итого у нас в одной из табчастей лежит для распечатки сразу три документа
Но если они помечены на удаление были, то нужно чтобы в одной колонке фон был красным, если какой-то из документов был полмечен на удаление.
Вот я и не пойму, как возиться здесь с условным оформлением и пытаюсь добраться вручную
(15)
при этом тебе в реквизит таблицы формы придется добавить
колонку реквизита с признаком пометки документа на удаление
(эту пометку на удаление необязательно выводить на элемент управления в форме но потребуется ее коррекно перезаполнять при выборе или подборе документа
в "список для печати").
(17) Rothschild, Не поняла.. отсюда поподробнее..
Я же взяла на это дело колонку булева типа..
У меня есть колонка в табличнойЧасти: Выбран.. Там тип булево. Я могу их все пометить для печати, но документы, помеченные на удаление доллжны быть выделены в данной колонке другим цветом.
Но смотрю номер не проходит(((
лан.. щас попробую создать колонку
(18) Bukaska,
тебе нужна другая колонка в таблице - "ПометкаУдаления" со значением этой пометки.
а в условном оформлении для всей таблицы выбирай:
в условии
ПометкаУдаления = Истина
а в параметрах оформления -
- то как ты эту строчку хочешь "изгатить",
чтоб юзеру стало противно
и
он ни за что на свете не стал бы печатать документы, помеченные на удаление!!!
(19) Rothschild, Не срабатывает. Добавила колонку, открываю документ, открываю табчасть, и никакой реакции по данной колонке, хотя я часть документов в покупках и продажах пометила на удаление, ну там счет, реализацию, а в моем документе они в виде списка не помечаются, разве что ставить и снимать галки корректно отрабатывает
В общем оно работает, если я сама в своём документе пометила какой-то док из списка на удаление
Но если я тот же счет помечу в покупках и продажах в собственных формах списка, то я у себя в документе в табчасти, где у меня сформировано по три документа покупателю, я там его помеченным на удаление не увижу - как быть?
Суть самоделки-документа, я из собственного документа формирую на каждого покупателя по три документа, и вывожу сразу на печать счет, счет-фактуру и акт, но если я их(хоть где) пометила на удаление, то они у меня в моём документе должны показать, что док помечали на удаление
(22) Rothschild, да.. У меня две табличных части.
В одной табчасти я ввожу данные по каждому покупателю и у меня есть кнопка: Создать Документы
Данная кнопка формирует сразу в другой табличной части по три документа каждому покупателю в виде списка.
Это сделано для того, чтобы одним разом распечатывать счета и акты за месяц для рассылки клиентам на оплату.
Вот только с этим оформлением мечешься, как курица с яйцом)))
(24) Bukaska,
пометку удаления в подготовленном для печати списке обновляешь,
после того как помечаешь документы на удаление
(уже после того как они попали в тот список) ???
(26) Rothschild, В условном оформлении я вручную пометила на удаление, потом перехожу на другую строку и только после этого меняется как надо цвет фона.
Но если я помечу тот же док реализации не в табчасти моего документа, а среди документов реализации, то мой документ этого не увидит
(31)(32)Ну тогда в чем вопрос-то? Динамических табличных частей еще не придумали. Или обновлять ТЧ при каждом телодвижении или мутить с ОбработкойОповещения.
(25) jigourt, да.. Я программно пока что и не совалась в данную колонку.
Ну если я вручную тыкаюсь ставить пометку удаления в моём документе - то работает.
Если же я сформировала документы на оплату, а пометила на удаление не в своём документе, а среди списка актов и счетов, то у меня эта пометка не показывается.
Может все таки нужен нужен какой обработчик?
Но при выделении табличной части и поиск в свойствах нужного обработчика: ПриВыводеСтроки - нету, хоть выделяй форма/Свойста - как такового обработчика нету
(29) jigourt, Я документ пробовала закрывать и открывать.. все равно
(30) mymyka, Форма Документа, а не списка..
Просто отдельная табличная часть.. Что я там и не найду основной таблицы, как я поняла по запросу, как в форме списка
(32) Bukaska,
если ты заполняешь в табличной части значение пометки на удаление
на момент добавление документа в список,
то это значение автоматом не изменится,
если ты затем его пометишь на удаление.
***
(33)
по этой причине колонку "ПометкаУдаления" нельзя привязывать к данным объекта.
Ее надо ПриСозданииНаСервере() заполнять по фактическим данным,
а так же при всех манипуляциях со списком документов
(33) Rothschild, Пометка на удаление работает.. сохраняется при перезапуске программы, но только если я пометила из своего документа, а не из других списков
пример раскраски ТЧ документа на УФ
Создай на форме команду
&НаКлиенте
Процедура УсловноеОформление(Команда)
ОформитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОформитьНаСервере()
//Зададим цвет раскраски строк
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона",WebЦвета.ЗеленаяЛужайка);
//Зададим условия раскраски
ЭлементУсловия = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементыОтбораКомпоновкиДанных"));
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Количество");//в колекции условия нужно указывать поле реквизита формы
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементУсловия.ПравоеЗначение = 10 ;
//Укажем какое поле ТЧ раскрасить
ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Товары.Товар"); //в коллекции оформляемых полей нужно указывать имя поля таблицы
КонецПроцедуры
(42) Rothschild, Пока испытываю при СозданииНаСервере.. Потом рискну команду формы.
И так убрала из формы ссылки на все обработчики модуля, теперь введенные данные не сохраняются... Теперь как дров наломала, нужно их сначала сложить)
(52) jigourt,
На пометку Удаления я сделала так:
Но не запоминается галка даже если я помечу на удаление здесь в документе, а если пометишь в других списках, вообще не увидишь
&НаКлиенте
Процедура ТЧСписокДокументовПомУдаленияПриИзменении(Элемент)
// Вставить содержимое обработчика.
ТекущаяСтрока = Элементы.ТЧСписокДокументов.ТекущиеДанные;
Если НЕ ТекущаяСтрока.Документ.ПометкаУдаления Тогда
Сообщить("Отмеченные на удаление помечаются красным цветом, съем галочки на удаление снимает пометку удаления!")
КонецЕсли;
КонецПроцедуры
Показать
&НаКлиенте
Процедура ТЧСписокДокументовВыбранПриИзменении(Элемент)
ТекущийДокумент=Элементы.ТЧСписокДокументов.ТекущиеДанные.Документ;
Элементы.ТЧСписокДокументов.ТекущиеДанные.Документ.ПометкаУдаления Тогда
Если НЕ Элементы.ТЧСписокДокументов.ТекущиеДанные.Выбран И ТекущийДокумент.ПометкаУдаления Тогда
Если Вопрос("Снять пометку удаления выбранного документа?",РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда
Элементы.ТЧСписокДокументов.ТекущиеДанные.Документ.ПолучитьОбъект().УстановитьПометкуУдаления(Ложь);
ЭтаФорма.Записать();
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Я из одного документа создаю сразу за месяц по три документа для каждого контрагента
По сути это и есть вторая табличная часть, для которой делались колонки Выбран и ПомУдаления
По колонке:Выбран галки запоминаются после закрытия/открытия, по колонке ПомУдаления - нет
&НаКлиенте
Процедура СоздатьСчета(Команда)
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
Сообщить("Необходимо заполнить поле ''Организация''!
|Обработка прекращена!");
Возврат;
КонецЕсли;
Если ЭтотОбъект.Модифицированность Тогда
ЭтаФорма.Записать();
КонецЕсли;
Если Объект.ДатаАктов<Объект.ДатаСчетов Тогда
Предупреждение("Дата актов и накладных не может быть меньше даты счетов!
|Обработка прекращена!");
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.СтатьяОбслуживание) Тогда
Предупреждение("В документе не заполнено поле ''Абонентское обслуживание'', создание документов не может быть выполнено!!!");
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.СтатьяПрочее) Тогда
Проверка=ПроверкаПоЧасамНаСервере();
Если НЕ Проверка Тогда
Предупреждение("В документе не заполнено поле ''Информационные часы'', создание документов не может быть выполнено!!!");
Возврат;
КонецЕсли;
КонецЕсли;
Если ПроверкаТабЧасти()>0 Тогда
Сообщить("Ошибки заполнения строк документа перечислены в окне ''Служебные сообщения''!
| Документы для контрагентов создать невозможно!");
Возврат;
КонецЕсли;
ЭтоУСН=ОпределитьУСН(Объект.Организация,Объект.Дата);
Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ПодчиненныеЭлементы.ГруппаТЧСписокДокументов;
Если ПроверкаДокументов()>0 Тогда
Ответ=ВопросПроСоздание();
Если Ответ=Неопределено Тогда
Возврат;
ИначеЕсли Ответ=Истина Тогда
ОтметитьНаСервере();
ЭтаФорма.Записать();
УдалениеДокументов(Истина);
КонецЕсли;
Иначе
Ответ=Истина;
КонецЕсли;
Колво=Объект.ТабличнаяЧасть1.Количество();
Если НЕ Ответ Тогда
КоличествоПоНаличиюСделанныхДокументов(Колво);
КонецЕсли;
//Проверяем, сколько галок "МесяцаОтдельно"
КоличествоПоРаздельнымМесяцам(Колво);
СоздатьСчетаНаСервере(Ответ,Колво);
Сообщить("Создание документов закончено.");
Объект.ТЧСписокДокументов.Сортировать("Контрагент,Документ");
ЭтаФорма.Записать();
КонецПроцедуры
(53) Bukaska, ниче из этих кусков кода не понял. в общем суть такая. есть некий документ, который при создании создает еще какие-то и добавляет данные о них себе в ТЧ. если из документа какой-то из них пометить на удаление, то в ТЧ это видно, а если просто интерактивно пометить на удаление, то в ТЧ документа это не отображается. я правильно понял? ))
(54) jigourt, В общем в самодельном документе мы вводим данные в течение месяца по обслуживанию в разрезе клиентов
В конце месяца мы формируем документы, на каждого клиента по три документа(счет, счет-фактура и акт)
Все эти трое документов спокойно можно найти среди счетов, автов и счетов-фактур.. То есть они создаются в базе как новые и отображаются в табличной части самодельного документа.
Кнопка выбора работает, могу выбрать все и снять все(галки)
а вот галка в колонке: Пометка Удаления - она ставится и колонка закрашивается, но.. пока документ открыт.
Я могу на одном из клиентов в списке счетов фактур пометить счет-фактуру на удаление, этого в моем документе в табличной части не отобразится!
Я могу создать заново документы, удалить документы из списка табличной части. Но мой документ не видит документы, если они помечены на удаление из другого места базы, а не из моего документа. А в своём документе я в списке табличной части пометила на удаление и удалила, но если я помечу на удаление в своем документе и закрою документ, при повторном открытии выясняется, что я галки удаления будто бы не ставила
(56) Восьмой, Но с колонкой Выбор не было же обновления формы.. не пойму в чем косяк..
Добавить что-ли типа этого:
ЭтаФорма.Обновить();
Сейчас попробую
(57) Восьмой, Но ума-то палата, как в палате №6)))
Добавила в обработчик ТЧСписокДокументовПриИзменении строку:
ЭтаФорма.ОбновитьОтображениеданных();
Все равно даже в своём документе не запоминает галочки пометки на удаление после закрытия документа
(61) Восьмой, В данном случае у меня отдельная колонка помУдаления, которая я не пойму зачем нужна.. Так как колонка сама по себе, она не является составной частью созданных документов.
Она работает только на непосредственное удаление списка документов, пока мой док открыт
&НаСервере
Процедура ОтметитьНаСервере()
//Объект = РеквизитФормыВЗначение("Объект");
Для каждого Элемент Из Объект.ТЧСписокДокументов Цикл
Элемент.Выбран = НЕ Элемент.Выбран;
КонецЦикла;
//ЗначениеВРеквизитФормы(Объект,"Объект");
КонецПроцедуры
&НаКлиенте
Процедура УдалениеДокументов(Молча)
Если ЭтаФорма.Модифицированность Тогда
ЭтаФорма.Записать();
КонецЕсли;
Если Объект.ТЧСписокДокументов.Количество() = 0 Тогда
Предупреждение("Нет документов для удаления!");
//Сообщить("Нет документов для удаления!");
Возврат;
КонецЕсли;
ЕстьПомеченные=Ложь;
Для каждого СтрокаТЧ Из Объект.ТЧСписокДокументов Цикл
Если СтрокаТЧ.Выбран Тогда
Если НЕ ЕстьПомеченные Тогда
ЕстьПомеченные=Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если НЕ Молча И ЕстьПомеченные Тогда
Решение=ВопросПроУдаление();
Если Решение=Ложь Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Если НЕ ЕстьПомеченные Тогда
Предупреждение("Нет документов, помеченных на удаление!");
//Сообщить("Нет документов, помеченных на удаление!");
Возврат;
КонецЕсли;
УдалитьДоки();
//Удаляем кривые обрывки строк
Колво=Объект.ТЧСписокДокументов.Количество();
Для к=1 По Колво Цикл
СтрокаТЧ=Объект.ТЧСписокДокументов.Получить(Колво-к);
//Если СтрокаТЧ.Выбран И СтрокаТЧ.Документ=Неопределено Тогда
Если СтрокаТЧ.Выбран Тогда
Объект.ТЧСписокДокументов.Удалить(Колво-к);
КонецЕсли;
КонецЦикла;
Объект.ТЧСписокДокументов.Сортировать("Контрагент,Документ"); //На случай, когда удалено не все
ЭтаФорма.Записать();
КонецПроцедуры
В данном случае у меня отдельная колонка помУдаления, которая я не пойму зачем нужна
- ты точно 1Сы программист а не гадалка???
Напиши себе тех задание на примере этого:
1. Создать документ XXX - назначение документа создание пакета документов YYY по контрагентам в конце месяца
2. Создать у документа XXX табличну часть (ТЧ) в которой отображается список документов YYY
3. Создать обработчик события заполнение(создание) пакета документов YYY для табличной части документа XXX
4. Для ТЧ документа XXX реализовать механизм установки отметки удаления конкретного документа YYY
5. В ТЧ документа XXX добавить колонку со значением реквизита "пометка удаления" документа YYY
6. Для ТЧ документа XXX установить раскраску строк ТЧ по условию ДокументYYY.ПометкаУдаления = Истина
Учись сначала решать задачу на бумаге а не рисовать из головы.
А теперь покажи главный вот эту процедуру УдалитьДоки();
Она у тебя непосредственно документы должна удалить???
Если СтрокаТЧ.Выбран Тогда
Объект.ТЧСписокДокументов.Удалить(Колво-к);
КонецЕсли;
- Выбран я так понял у тебя это поле????
И я чето-то не догоняю - у тебя типа должна быть галочка на "якобы потом удалить" ???
(63) Восьмой, Да.. можно вычистить табчасть и снова создать(заполнить) её документами
Колонка ПоУдаления была в течение этой темы создана для условного оформления, раскраски в другой тон..
Но как при формировании табчасти с списком документов выяснить, есть ли помеченные на удаление. А то ведь я чуть ли не все сформированные документы из списка(счета, акты и СФ) пометила на удаление среди их форм списка, но мой док не видит, что они помечены на удаление.. только когда в своём доке ставлю галку пометки, тогда даже и рисунок меняется сразу)
(65) Восьмой,
Создать Документ для формирования счетов и актов для единой распечатки в конце месяца.
Создать Табчасть для ввода данных по клиентам, и ещё табличную часть - для формирования списка документов
В табличной части списка документов должен механизм отслеживать пометки на удаление.
Помеченные на удаление документы должны выделяться в списке другим цветом.
(69) Восьмой, Так это же что ты привел это получается кнопка на форме.. жать каждый раз на кнопку? Хотя все равно не срабатывает, а условное оформление из свойств - отрабатывает)
&НаКлиенте
Процедура УсловноеОформление(Команда)
ОформитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОформитьНаСервере()
//Зададим цвет раскраски строк
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона",WebЦвета.ЗеленаяЛужайка);
//Зададим условия раскраски
ЭлементУсловия = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧСписокДокументов.ПомУдаления");//в колекции условия нужно указывать поле реквизита формы
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементУсловия.ПравоеЗначение = 10 ;
//Укажем какое поле ТЧ раскрасить
ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТЧСписокДокументов.ПомУдаления"); //в коллекции оформляемых полей нужно указывать имя поля таблицы
КонецПроцедуры
ОформитьНаСервере() - поставь либо в обновление формы либо при создании на сервере" - я тебе вызов через кнопу для примера привел - это тоже самое что через свойства только программным способом
//Здесь ты меня просто без ножа зарезала
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧСписокДокументов.ПомУдаления");//в колекции условия нужно указывать поле реквизита формы
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементУсловия.ПравоеЗначение = 10 ;
вместо Объект.ТЧСписокДокументов.ПомУдаления у тебя должно быть что-то вроде Объект.ТЧСписокДокументов.Документ.ПометкаУдаление где "Документ" - это имя поля с твоим документом ты должна проверить саму пометку документа на удаление а не значение твоего поля в ТЧ.
вместо ЭлементУсловия.ПравоеЗначение = 10 ; должно быть ЭлементУсловия.ПравоеЗначение = Истина ; ну зачем ты пометку с числом сравниваешь когда у тебя значение БУЛЕВО?
Новый ПолеКомпоновкиДанных("ТЧСписокДокументов.ПомУдаления") - блин ну укажи ты здесь само поле документа Тч а если нужно чтобы вся строка красилась то нужно добавить поочередно все поля твоей ТЧ
что не ясно?????
Либо блин через свойства загоняй - но блин проверку делай на пометку самого документа!!!!!!!
(71) Восьмой, В цикле может проверять?
Объект.ТЧСписокДокументов.Документ.ПометкаУдаление - Мне не попасть так, теперь придется всё это крутить в цикле
(74) jigourt, Всё равно.. в отладке все видит, а сформировала список документов, так он не видит, что в сформированном списке документов имеются помеченные на удаление
Работает только интерактивная пометка удаления, пока документ открыт
(79) jigourt, Вот серверная процедура создания документов
&НаСервере
Процедура СоздатьСчетаНаСервере(Ответ,Колво)
Перем СтрокаМассиваНомеров;
Перем МаксНомер;
ЭтоУСН=ОпределитьУСН(Объект.Организация,Объект.Дата);
ТекПрефикс=Объект.Организация.Префикс;
ДлНомераБезПрефикса=Объект.Ссылка.Метаданные().ДлинаНомера-5;
//МассивНомеров=ПолучитьМассивСвободныхНомеров(Колво,ТекПрефикс,ДлНомераБезПрефикса);
СтавкаНДС_Обсл=СтавкаНДС(Объект.СтатьяОбслуживание.СтавкаНДС);
СтавкаНДС_Проч=СтавкаНДС(Объект.СтатьяПрочее.СтавкаНДС);
СчетаУчета_Обсл = БухгалтерскийУчетПереопределяемый.ПолучитьСчетаУчетаНоменклатуры(Объект.Организация, Объект.СтатьяОбслуживание);
СчетаУчета_Проч =БухгалтерскийУчетПереопределяемый.ПолучитьСчетаУчетаНоменклатуры(Объект.Организация, Объект.СтатьяПрочее);
ДокСчетТ = Документы.СчетНаоплатуПокупателю;
ДокАктТ = Документы.РеализацияТоваровУслуг;
ДокСФТ = Документы.СчетФактураВыданный;
ПерваяСтрока=Истина;
ПозМассива=0;
ДатаОтдДок= НачалоМесяца(Объект.ДатаАктов);
ЗапросАдресаКонтрагентов=Новый Запрос;
ЗапросАдресаКонтрагентов.Текст=
"ВЫБРАТЬ
| КонтрагентыКонтактнаяИнформация.Ссылка КАК Контрагент,
| КонтрагентыКонтактнаяИнформация.Представление КАК Адрес
|ИЗ
| Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
|ГДЕ
| КонтрагентыКонтактнаяИнформация.Ссылка В(&СписокКонтагентов)
| И КонтрагентыКонтактнаяИнформация.Тип = &Тип
| И КонтрагентыКонтактнаяИнформация.Вид = &Вид";
ЗапросАдресаКонтрагентов.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Адрес);
ЗапросАдресаКонтрагентов.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
СписокКонтагентов=Объект.ТабличнаяЧасть1.Выгрузить(,"Контрагент");
ЗапросАдресаКонтрагентов.УстановитьПараметр("СписокКонтагентов",СписокКонтагентов);
ТаблицаАдресов=ЗапросАдресаКонтрагентов.Выполнить().Выгрузить();
Дописки=Новый СписокЗначений;
Дописки.Добавить(" ");
Дописки.Добавить(" (вечерние часы)");
Дописки.Добавить(" (часы в выходные)");
Дописки.Добавить(" (часы по доп.тарифу)");
ДелатьСчет=Истина;
ДелатьРеал=Истина;
ДелатьСчФк=Истина;
ДелатьСчетТариф=Истина;
ДелатьРеалТариф=Истина;
ДелатьСчтФТариф=Истина;
ДелатьСчетЧасы=Истина;
ДелатьРеалЧасы=Истина;
ДелатьСчтФЧасы=Истина;
МассивНомеров=ПолучитьМассивСвободныхНомеров(Колво,ТекПрефикс,ДлНомераБезПрефикса);
Для каждого СтрокаДокумента Из Объект.ТабличнаяЧасть1 Цикл
Если СтрокаДокумента.МесяцаОтдельно И СтрокаДокумента.Тариф=СтрокаДокумента.Сумма Тогда
МесяцаОтдельно=Ложь;
Иначе
МесяцаОтдельно=СтрокаДокумента.МесяцаОтдельно;
КонецЕсли;
Если НЕ Ответ Тогда
НайдМассив=Объект.ТЧСписокДокументов.НайтиСтроки(Новый Структура("Контрагент,Договор",СтрокаДокумента.Контрагент,СтрокаДокумента.Договор));
СуммаСчета=0;
СуммаРеал=0;
СуммаСчФ=0;
Для каждого СтрокаМассива Из НайдМассив Цикл
Если ТипЗнч(СтрокаМассива.Документ)=Тип("ДокументСсылка.СчетНаОплатуПокупателю") Тогда
СуммаСчета=СуммаСчета+СтрокаМассива.Документ.СуммаДокумента;
ИначеЕсли ТипЗнч(СтрокаМассива.Документ)=Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
СуммаРеал=СуммаРеал+СтрокаМассива.Документ.СуммаДокумента;
ИначеЕсли ТипЗнч(СтрокаМассива.Документ)=Тип("ДокументСсылка.СчетФактураВыданный") Тогда
СуммаСчФ=СуммаСчФ+СтрокаМассива.Документ.СуммаДокумента; //есть и просто сумма - та же самая
КонецЕсли;
КонецЦикла;
Если СтрокаДокумента.Сумма=СуммаСчета Тогда
ДелатьСчет=Ложь;
КонецЕсли;
Если СтрокаДокумента.Сумма=СуммаРеал Тогда
ДелатьРеал=Ложь;
КонецЕсли;
Если СтрокаДокумента.Сумма=СуммаСчФ Тогда
ДелатьСчФк=Ложь;
КонецЕсли;
Если (ДелатьСчет ИЛИ ДелатьРеал ИЛИ ДелатьСчФк) Тогда
Если МесяцаОтдельно Тогда
Если ДелатьСчет И СуммаСчета>0 Тогда
Если СтрокаДокумента.Тариф=СуммаСчета Тогда
ДелатьСчетТариф=Ложь;
ИначеЕсли СтрокаДокумента.Сумма-СтрокаДокумента.Тариф=СуммаСчета Тогда
ДелатьСчетЧасы=Ложь;
Иначе
//ДелатьСчет=Ложь;
Сообщить("По контрагенту "+СтрокаДокумента.Контрагент +" сумма в списке подготавливаемых документов не соответствует сумме в ранее созданном счете! Исправьте сумму в списке или удалите старый документ!",СтатусСообщения.Внимание );
Возврат;
КонецЕсли;
КонецЕсли;
Если ДелатьРеал И СуммаРеал>0 Тогда
Если СтрокаДокумента.Тариф=СуммаРеал Тогда
ДелатьРеалТариф=Ложь;
ИначеЕсли СтрокаДокумента.Сумма-СтрокаДокумента.Тариф=СуммаРеал Тогда
ДелатьРеалЧасы=Ложь;
Иначе
//СуммаРеал=Ложь;
Сообщить("По контрагенту "+СтрокаДокумента.Контрагент +" сумма в списке подготавливаемых документов не соответствует сумме в ранее созданной реализации! Исправьте сумму в списке или удалите старый документ!",СтатусСообщения.Внимание );
Возврат;
КонецЕсли;
КонецЕсли;
Если ДелатьСчФк И СуммаСчФ>0 Тогда
Если СтрокаДокумента.Тариф=СуммаСчФ Тогда
ДелатьСчтФТариф=Ложь;
ИначеЕсли СтрокаДокумента.Сумма-СтрокаДокумента.Тариф=СуммаСчФ Тогда
ДелатьСчтФЧасы=Ложь;
Иначе
//ДелатьСчФк=Ложь;
Сообщить("По контрагенту "+СтрокаДокумента.Контрагент +" сумма в списке подготавливаемых документов не соответствует сумме в ранее созданном счете-фактуре! Исправьте сумму в списке или удалите старый документ!",СтатусСообщения.Внимание );
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
Сообщить("По контрагенту "+СтрокаДокумента.Контрагент +" сумма в списке подготавливаемых счетов не соответствует сумме в ранее созданном документе! Исправьте сумму в списке или удалите старые и создайте новые документы по контрагенту ",СтатусСообщения.Внимание );
Возврат;
КонецЕсли;
Если НЕ ДелатьСчет И НЕ ДелатьРеал И НЕ ДелатьСчФк Тогда
Продолжить;
КонецЕсли;
КонецЕсли; //Вариант выполнения "Частично"
//Если СтрокаДокумента.МесяцаОтдельно И СтрокаДокумента.Тариф<СтрокаДокумента.Сумма Тогда
Если МесяцаОтдельно Тогда
Кол=2;
Иначе
Кол=1;
КонецЕсли;
Для к=1 По Кол Цикл
Если Кол=2 И к=1 И (НЕ ДелатьСчетТариф И НЕ ДелатьРеалТариф И НЕ ДелатьСчтФТариф) Тогда
Продолжить;
КонецЕсли;
Если к=2 И (НЕ ДелатьСчетЧасы И НЕ ДелатьРеалЧасы И НЕ ДелатьСчтФЧасы) Тогда
Продолжить;
КонецЕсли;
ПризнакРеализации=ДелатьРеал и (к=1 и ДелатьРеалТариф) или (к=2 И ДелатьРеалЧасы);
ПризнакСчета=ДелатьСчет и (к=1 и ДелатьСчетТариф) или (к=2 И ДелатьСчетЧасы);
ПризнакСчтФ=ДелатьСчФК и (к=1 и ДелатьСчтФТариф) или (к=2 И ДелатьСчтФЧасы);
Если к=2 Тогда
Если ЗначениеЗаполнено(СтрокаДокумента.ДатаСчетов) Тогда
//ДатаСчет= НачалоДня(НачалоМесяца(СтрокаДокумента.ДатаСчета)-1);
ДатаСчет= НачалоМесяца(СтрокаДокумента.ДатаСчетов);
Иначе
ДатаСчет=ДатаОтдДок;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаДокумента.ДатаАктов) Тогда
//ДатаАкт= НачалоДня(НачалоМесяца(СтрокаДокумента.ДатаАкта)-1);
ДатаАкт= НачалоМесяца(СтрокаДокумента.ДатаАктов);
Иначе
ДатаАкт=ДатаОтдДок;
КонецЕсли;
Иначе
Если ЗначениеЗаполнено(СтрокаДокумента.ДатаСчетов) Тогда
ДатаСчет = СтрокаДокумента.ДатаСчетов;
Иначе
ДатаСчет = Объект.ДатаСчетов;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаДокумента.ДатаАктов) Тогда
ДатаАкт = СтрокаДокумента.ДатаАктов;
Иначе
ДатаАкт = Объект.ДатаАктов;
КонецЕсли;
КонецЕсли;
Если НЕ ПерваяСтрока Тогда
//Некоторые документы могут не создаваться, а нумерация должна идти параллельно
Если СтрокаМассиваНомеров.Конец=Неопределено или МаксНомер<СтрокаМассиваНомеров.Конец Тогда
МаксНомер=МаксНомер+1;
Иначе
ПозМассива=ПозМассива+1;
СтрокаМассиваНомеров=МассивНомеров.Получить(ПозМассива);
МаксНомер=СтрокаМассиваНомеров.Начало;
КонецЕсли;
КонецЕсли;
Если ПерваяСтрока Тогда
Если ДелатьСчет ИЛИ ДелатьРеал ИЛИ ДелатьСчФК Тогда
СтрокаМассиваНомеров=МассивНомеров.Получить(ПозМассива);
МаксНомер=СтрокаМассиваНомеров.Начало;
Иначе
Продолжить;
КонецЕсли;
ПерваяСтрока=Ложь;
КонецЕсли;
Если ПризнакСчета Тогда
ДокСчет=ДокСчетТ.СоздатьДокумент();
ДокСчет.Дата=ДатаСчет;
ДокСчет.УстановитьВремя(РежимАвтоВремя.ТекущееИлиПоследним);
ЗаполнениеДокументов.Заполнить(ДокСчет);
ДокСчет.ОрганизацияПолучатель=Объект.Организация;
Если НЕ ПризнакРеализации Тогда
//Если НайтиИПривязатьДокумент(ДокСчет,СтрокаДокумента.Контрагент,"РеализацияТоваровУслуг",Ложь) Тогда
Если НайтиИПривязатьДокумент(ДокСчет,СтрокаДокумента.Контрагент,"РеализацияТоваровУслуг",Истина) Тогда
Если МаксНомер>СтрокаМассиваНомеров.Начало Тогда
МаксНомер=МаксНомер-1;
КонецЕсли;
КонецЕсли;
ИначеЕсли НЕ ПризнакСчтФ Тогда
Если НайтиИПривязатьДокумент(ДокСчет,СтрокаДокумента.Контрагент,"СчетФактураВыданный",Ложь) Тогда
Если МаксНомер>СтрокаМассиваНомеров.Начало Тогда
МаксНомер=МаксНомер-1;
КонецЕсли;
КонецЕсли;
Иначе
ДокСчет.Номер=ТекПрефикс+Формат(МаксНомер,"ЧЦ="+ДлНомераБезПрефикса+"; ЧРГ=; ЧВН=; ЧГ=0");
КонецЕсли;
//Заполняем документ счет - шапка
ДокСчет.Комментарий = "Введен документом: " + Строка(Объект.Ссылка);
ДокСчет.Контрагент = СтрокаДокумента.Контрагент;
ДокСчет.ДоговорКонтрагента = СтрокаДокумента.Договор;
ДокСчет.СтруктурнаяЕдиница = Объект.Счет;
Если НЕ ЭтоУСН Тогда
ДокСчет.СуммаВключаетНДС=СтрокаДокумента.НДСВключен;
ДокСчет.УчитыватьНДС=Истина;
КонецЕсли;
СтрокаСАдресом=ТаблицаАдресов.Найти(СтрокаДокумента.Контрагент,"Контрагент");
Если СтрокаСАдресом<>неопределено Тогда
ДокСчет.АдресДоставки = СтрокаСАдресом.Адрес;
КонецЕсли;
КонецЕсли;
Если ПризнакРеализации Тогда
ДокАкт=ДокАктТ.СоздатьДокумент();
ДокАкт.Дата=ДатаАкт;
ДокАкт.УстановитьВремя(РежимАвтоВремя.ТекущееИлиПоследним);
ЗаполнениеДокументов.Заполнить(ДокАкт);
ДокАкт.Грузоотправитель=Объект.Организация;
Если НЕ ПризнакСчета Тогда
Если НайтиИПривязатьДокумент(ДокАкт,СтрокаДокумента.Контрагент,"СчетНаОплатуПокупателю",Ложь) Тогда
Если МаксНомер>СтрокаМассиваНомеров.Начало Тогда
МаксНомер=МаксНомер-1;
КонецЕсли;
КонецЕсли;
ИначеЕсли НЕ ПризнакСчтФ Тогда
Если НайтиИПривязатьДокумент(ДокАкт,СтрокаДокумента.Контрагент,"СчетФактураВыданный",Ложь) Тогда
Если МаксНомер>СтрокаМассиваНомеров.Начало Тогда
МаксНомер=МаксНомер-1;
КонецЕсли;
КонецЕсли;
Иначе
ДокАкт.Номер=ТекПрефикс+Формат(МаксНомер,"ЧЦ="+ДлНомераБезПрефикса+"; ЧРГ=; ЧВН=; ЧГ=0");
КонецЕсли;
//Заполняем документ Реализация - шапка
ДокАкт.Комментарий = "Введен документом: " + Строка(Объект.Ссылка);//Строка(ДокСчет);
ДокАкт.Контрагент = СтрокаДокумента.Контрагент;
ДокАкт.ДоговорКонтрагента = СтрокаДокумента.Договор;
ДокАкт.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПокупателями;
ДокАкт.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным;
ДокАкт.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.Услуги;
Если НЕ ЭтоУСН Тогда
ДокАкт.СуммаВключаетНДС=СтрокаДокумента.НДСВключен;
ДокАкт.УчитыватьНДС=Истина;
КонецЕсли;
КонецЕсли;
Если ПризнакСчтФ Тогда
ДокСФ=ДокСФТ.СоздатьДокумент();
Если ПризнакРеализации Тогда
ДокСФ.Дата=ДокАкт.Дата;
Иначе
ДокСФ.Дата=Объект.ДатаАктов;
ДокСФ.УстановитьВремя(РежимАвтоВремя.ТекущееИлиПоследним);
КонецЕсли;
ЗаполнениеДокументов.Заполнить(ДокСФ);
Если НЕ ПризнакРеализации Тогда
//Если НайтиИПривязатьДокумент(ДокСФ,СтрокаДокумента.Контрагент,"РеализацияТоваровУслуг",Ложь) Тогда
Если НайтиИПривязатьДокумент(ДокСФ,СтрокаДокумента.Контрагент,"РеализацияТоваровУслуг",Истина) Тогда
Если МаксНомер>СтрокаМассиваНомеров.Начало Тогда
МаксНомер=МаксНомер-1;
КонецЕсли;
КонецЕсли;
ИначеЕсли НЕ ПризнакСчета Тогда
Если НайтиИПривязатьДокумент(ДокСФ,СтрокаДокумента.Контрагент,"СчетНаОплатуПокупателю",Ложь) Тогда
Если МаксНомер>СтрокаМассиваНомеров.Начало Тогда
МаксНомер=МаксНомер-1;
КонецЕсли;
КонецЕсли;
Иначе
ДокСФ.Номер=ТекПрефикс+Формат(МаксНомер,"ЧЦ="+(ДлНомераБезПрефикса+1)+"; ЧРГ=; ЧВН=; ЧГ=0");
КонецЕсли;
//Заполняем документ Счет-фактура - шапка
ДокСФ.Комментарий = "Введен документом: " + Строка(Объект.Ссылка);//Строка(ДокСчет);
ДокСФ.Контрагент = СтрокаДокумента.Контрагент;
ДокСФ.ДоговорКонтрагента = СтрокаДокумента.Договор;
//Если НЕ СтрокаДокумента.МесяцаОтдельно Тогда
Если НЕ МесяцаОтдельно Тогда
ДокСФ.Сумма = СтрокаДокумента.Сумма; //Видимо, с или без НДС
ДокСФ.СуммаДокумента = СтрокаДокумента.Сумма; //Видимо, общая
Если НЕ ЭтоУСН Тогда
ДокСФ.СтавкаНДС=Объект.СтатьяОбслуживание.СтавкаНДС;
ДокСФ.СуммаНДС=СтрокаДокумента.Сумма*СтавкаНДС_Обсл/(100+СтавкаНДС_Обсл);
Иначе
ДокСФ.СтавкаНДС=Перечисления.СтавкиНДС.БезНДС;
ДокСФ.СуммаНДС=0;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если СтрокаДокумента.Тариф <> 0 и к=1 Тогда
Если ПризнакСчета Тогда
СтрокаДокСчет=ДокСчет.Услуги.Добавить();
СтрокаДокСчет.Количество = 1;
СтрокаДокСчет.Номенклатура = Объект.СтатьяОбслуживание;
СтрокаДокСчет.Содержание=Строка(Объект.СтатьяОбслуживание);
СтрокаДокСчет.Цена = СтрокаДокумента.Тариф;
СтрокаДокСчет.Сумма = СтрокаДокумента.Тариф*СтрокаДокСчет.Количество;
Если ЭтоУСН Тогда
СтрокаДокСчет.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
СтрокаДокСчет.СуммаНДС = 0;
Иначе
СтрокаДокСчет.СтавкаНДС = Объект.СтатьяОбслуживание.СтавкаНДС;
Если СтрокаДокумента.НДСВключен Тогда
СтрокаДокСчет.СуммаНДС = СтрокаДокСчет.Сумма*СтавкаНДС_Обсл/(100+СтавкаНДС_Обсл);
Иначе
СтрокаДокСчет.СуммаНДС = СтрокаДокСчет.Сумма*СтавкаНДС_Обсл/100;
КонецЕсли;
КонецЕсли;
Если МесяцаОтдельно Тогда
ЗаписьСчета(ДокСчет,МаксНомер);
КонецЕсли;
КонецЕсли;
Если ПризнакРеализации Тогда
СтрокаДокАкт=ДокАкт.Услуги.Добавить();
СтрокаДокАкт.Количество = 1;
СтрокаДокАкт.Номенклатура = Объект.СтатьяОбслуживание;
СтрокаДокАкт.Содержание=Строка(Объект.СтатьяОбслуживание);
СтрокаДокАкт.Цена = СтрокаДокумента.Тариф;
СтрокаДокАкт.Сумма = СтрокаДокумента.Тариф*СтрокаДокАкт.Количество;
Если ЭтоУСН Тогда
СтрокаДокАкт.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
СтрокаДокАкт.СуммаНДС = 0;
Иначе
СтрокаДокАкт.СтавкаНДС = Объект.СтатьяОбслуживание.СтавкаНДС;
Если СтрокаДокумента.НДСВключен Тогда
СтрокаДокАкт.СуммаНДС = СтрокаДокСчет.Сумма*СтавкаНДС_Обсл/(100+СтавкаНДС_Обсл);
Иначе
СтрокаДокАкт.СуммаНДС = СтрокаДокСчет.Сумма*СтавкаНДС_Обсл/100;
КонецЕсли;
КонецЕсли;
//Установка счетов учета в реализации
ЗаполнитьСчетаБУВСтрокеУслуг(СтрокаДокАкт, СчетаУчета_Обсл, Истина);
Если МесяцаОтдельно Тогда
ЗаписьРеализации(ДокАкт,ДокСчет,МаксНомер,ПризнакСчета);
КонецЕсли;
КонецЕсли;
//Если ДелатьСчФК и СтрокаДокумента.МесяцаОтдельно Тогда
Если ПризнакСчтФ Тогда
ДокСФ.Сумма = СтрокаДокумента.Тариф; //Видимо, с или без НДС
ДокСФ.СуммаДокумента = СтрокаДокумента.Тариф; //Видимо, общая
Если НЕ ЭтоУСН Тогда
ДокСФ.СтавкаНДС=Объект.СтатьяОбслуживание.СтавкаНДС;
ДокСФ.СуммаНДС=СтрокаДокумента.Тариф*СтавкаНДС_Обсл/(100+СтавкаНДС_Обсл);
Иначе
ДокСФ.СтавкаНДС=Перечисления.СтавкиНДС.БезНДС;
ДокСФ.СуммаНДС=0;
КонецЕсли;
Если МесяцаОтдельно Тогда
ЗаписьСчФакт(ДокСФ,ДокАкт,МаксНомер,ПризнакРеализации,ПризнакСчета);
КонецЕсли;
КонецЕсли;
//Если МесяцаОтдельно Тогда
// ЗаписьСчФакт(ДокСФ,ДокАкт,МаксНомер,ПризнакРеализации,ПризнакСчета);
// КонецЕсли;
Если МесяцаОтдельно Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
//Если МесяцаОтдельно и к=1 Тогда
// Продолжить;
//КонецЕсли;
Для ид = 1 По 4 Цикл
Если СтрокаДокумента["Цена"+ид] = 0 ИЛИ СтрокаДокумента["Колво"+ид]=0 Тогда
Продолжить;
КонецЕсли;
ТекЦена=СтрокаДокумента["Цена"+ид]*(1+СтрокаДокумента.ПроцентТарифа/100);
ТекСумма=ТекЦена*СтрокаДокумента["Колво"+ид];
Если ТекСумма=0 Тогда
Продолжить;
КонецЕсли;
Если ПризнакСчета Тогда
СтрокаДокСчет=ДокСчет.Услуги.Добавить();
СтрокаДокСчет.Количество = СтрокаДокумента["Колво"+ид];
СтрокаДокСчет.Номенклатура = Объект.СтатьяПрочее;
СтрокаДокСчет.Содержание=Строка(Объект.СтатьяПрочее)+Дописки.Получить(ид-1);
СтрокаДокСчет.Цена = ТекЦена;
СтрокаДокСчет.Сумма = ТекСумма;
Если ЭтоУСН Тогда
СтрокаДокСчет.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
СтрокаДокСчет.СуммаНДС = 0;
Иначе
СтрокаДокСчет.СтавкаНДС = Объект.СтатьяПрочее.СтавкаНДС;
Если СтрокаДокумента.НДСВключен Тогда
СтрокаДокСчет.СуммаНДС = СтрокаДокСчет.Сумма*СтавкаНДС_Проч/(100+СтавкаНДС_Проч);
Иначе
СтрокаДокСчет.СуммаНДС = СтрокаДокСчет.Сумма*СтавкаНДС_Проч/100;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ПризнакРеализации Тогда
СтрокаДокАкт=ДокАкт.Услуги.Добавить();
СтрокаДокАкт.Количество = СтрокаДокумента["Колво"+ид];
СтрокаДокАкт.Номенклатура = Объект.СтатьяПрочее;
СтрокаДокАкт.Содержание=Строка(Объект.СтатьяПрочее)+Дописки.Получить(ид-1);
СтрокаДокАкт.Цена = ТекЦена;
СтрокаДокАкт.Сумма = ТекСумма;
Если ЭтоУСН Тогда
СтрокаДокАкт.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
СтрокаДокАкт.СуммаНДС = 0;
Иначе
СтрокаДокАкт.СтавкаНДС = Объект.СтатьяПрочее.СтавкаНДС;
Если СтрокаДокумента.НДСВключен Тогда
СтрокаДокАкт.СуммаНДС = СтрокаДокСчет.Сумма*СтавкаНДС_Проч/(100+СтавкаНДС_Проч);
Иначе
СтрокаДокАкт.СуммаНДС = СтрокаДокСчет.Сумма*СтавкаНДС_Проч/100;
КонецЕсли;
КонецЕсли;
ЗаполнитьСчетаБУВСтрокеУслуг(СтрокаДокАкт, СчетаУчета_Проч, Истина);
КонецЕсли;
Если ПризнакСчтФ Тогда
ДокСФ.Сумма = ТекСумма; //Видимо, с или без НДС
ДокСФ.СуммаДокумента = ТекСумма; //Видимо, общая
Если НЕ ЭтоУСН Тогда
ДокСФ.СтавкаНДС=Объект.СтатьяОбслуживание.СтавкаНДС;
ДокСФ.СуммаНДС=ТекСумма*СтавкаНДС_Обсл/(100+СтавкаНДС_Обсл);
Иначе
ДокСФ.СтавкаНДС=Перечисления.СтавкиНДС.БезНДС;
ДокСФ.СуммаНДС=0;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ПризнакСчета Тогда
ЗаписьСчета(ДокСчет,МаксНомер);
КонецЕсли;
Если ПризнакРеализации Тогда
ЗаписьРеализации(ДокАкт,ДокСчет,МаксНомер,ПризнакСчета);
КонецЕсли;
Если ПризнакСчтФ Тогда
ЗаписьСчФакт(ДокСФ,ДокАкт,МаксНомер,ПризнакРеализации,ПризнакСчета);
КонецЕсли;
КонецЦикла; //разделение месяцев
КонецЦикла; //перебор строк документа
КонецПроцедуры // СоздатьСчетаНаСервере(
(82) Восьмой, Всё равно.. что там на рисунке стоит галка пометки на удаление - это моя интерактивная.
закрыть долкумент - и галки в колонке: пометкаУдаления - словно никто не ставил
Хотя так я могу удалить список документов, поставив интерактивную галку.. в открытом документе я действовать могу..а закрою док и открою снова - надо будет опять пометки на удаление ставить.. так моих интерактивных не запоминает, а иных - тем более
(84) Bukaska, по интерактивным полям не работает работает только по полям объекта, причем как оказалось без доступа ко вложенным реквизитам - т.е при создании на сервере и при изменении табличной части делаешь вызов процедуры на установку оформления в ней читаешь ТЧ получаешь список всех доков помеченных на удаление ставишь оформление по полю документа с видом значения в списке и туда передаешь список помеченных - так 100 взлетит, только что проверял.
(75) Восьмой, Вот и не пойму как загнать, если я сформировала документы, потом взяла и в счетах фактурах пометила на удаление СФ, я чищу табчасть списка документов и формирую снова, но он не видит что СФ помечена была на удаление в списке счетов-фактур
PS: У меня документ создает документы с нуля по три на каждого клиента, а при удалении - только вычищает табчасть от документов
(85) Bukaska, я кажется наконец понял всю проблему ))) тебе видимо вот это надо
ОтобразитьИзменениеДанных(<Ссылка>, <ВидИзменения>)
Примечание:
В случае добавления или изменения данных вызов метода приводит к очистке кэшей на клиенте. В частности, очищается кэш представлений ссылок, кэш данных через точку, кэш данных быстрого выбора, кэш ограничений по типу. Удаляется только та информация, которая стала недействительной
это к этому
но он не видит что СФ помечена была на удаление в списке счетов-фактур
(88) jigourt, А куда её вставлять ту процедуру..
Я пробовала вписывать ЭтаФорма.ОбновитьотображениеДанных() и дохлый номер, хотя там может тоже какие -то переменные надо было передавать?
К управляемым формам ещё привыкать и привыкать, а тем более с заморочками на БСП)))
(90) Восьмой, вот кстати именно из-за такого описания никак не могу въехать, что есть, чего нет, что работает, а что нет ))) ведь проблема по-любому банальная ))
(91) jigourt, Смотри - у нее есть документы в Табличной части
она эти документы помечает на удаление
в табличной ей нужно раскрасить строки документов которые помечены на удаление.
Сделать это можно только через оформление - но в оформлении нельзя стукнуться напрямую к пометки удаления документа можно обращаться только к полям самой табличной части - вот в чем вся беда.
(96) Восьмой, Раскраска работает, при интерактивной установке галочки в колонке пометкаУдаления
Поставила вручную галочку, ячейка закрасилась..
А надо чтобы оно работало иначе. когда формируется список.. сформировался списолк документов и все видно, что на печать, а что помечено на удаление
(108) Восьмой, я этот кусочек кода выпрашивал столько, как будто на свидание приглашал )) вообще хорошо, цветочек умиления в серых буднях программиста )) я даж на свою работу забил ))