#0
by MrCrowley1988
Добрый день, уважаемые. 1С 8.2, конфигурация Розница. Документ Заказы поставщикам, ТЧ "Товары". Стоит задача автоматического просчета заказа по товару (количественного). В ТЧ "Товары", помимо "не нужных для данной задачи", есть колонки: Добавил в форму документа галочку "Автомат". В процедуре ТоварыПриВыводеСтроки, помимо основного кода, прописал: Все отлично, все считает как нужно, НО: если количество строк больше, чем отображается на экране, нужно проматывать ТЧ, что-юы процедура просчитала колонку "Количество" для всех строч ТЧ. ВОПРОС: Можно ли как-то данный код адаптировать под процудуру ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)? Там нету параметра "ДанныеСтроки". Пробовал в ТоварыПриПолученииДанных: Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл Если ЭлементыФормы.Автомат.Значение = Истина тогда Ругается на ДанныеСтроки.Количество = 0; Может можно как-то "прогнать" все строки ТЧ, что-бы через ТоварыПриВыводеСтроки просчитывались все строки, а не только видимые. В общем, помогите пожалуйста, кто чем может.
#1
by DTXqueque
При открытии документа пробежаться по ТЧ и подсчитать. Туда же направить обработчик изменения данных.
#3
by D_E_S_131
ИМХО нужно значение "Автомат" в данных хранить, а не "галочкой в списке" и результат рассчитывать по данным в ТЧ, а не по оформлениям строк.
#4
by MrCrowley1988
, попробывал в ТоварыПриПолученииДанных(Элемент, ОформленияСтрок): Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл Если ЭлементыФормы.Автомат.Значение = Истина тогда РЕЗУЛЬТАТ: Строки в колонке с реквизитом "Количество" становятся пустыми.
#6
by butterbean
это потому, что менять данные строки в момент их получения в корне не верно, при выводе строки тоже фигня, меняй концепцию
#7
by MrCrowley1988
, "ПриВыводеСтроки" концепция меня полностью удовлетворяет. Заполняется ТЧ, ставиться начальная и конечная дата периода, за который расчитываются (запросом) продажи, конечный остаток. Потом ставится галочка Автомат. 1С сам расчитывает поле-реквизит "Количество" (которое рекомендуеся заказать). Галочка "Автомат" снимается, и пользователь уже сам может "подредактировать" автоматический заказ (то-есть, предложенное программой количество заказываемого товара.
#8
by D_E_S_131
Что тебе мешает сохранить значение "Автомат" в ТЧ? Или просто народ тут по троллить хочешь?
#9
by butterbean
при твоем способе тч будет перерассчитываться при каждом открытии этой формы документа, а это пп.. мягко говоря не правильно. 1. галочку заменить на кнопочку, которую назвать "Рассчитать количество" 2. при нажатии на эту кнопку перерасчитывать продажи и остатки. Если они должны быть фиксированными, то их нужно хранить в тч документа, хотя это бред в данном случае
#10
by MrCrowley1988
, проблема совсем не в том! У меня все считает так, как мне нужно, все правильно. И продажи, и конечный остаток - все я сделал запросами. Проблема в строке: ДанныеСтроки.Количество В процедуре ПриВыводеСтроки она работает, все считает так, как мне нужно, но при большом количестве строк нужно проматывать ТЧ, удерживая галочку Автомат включеной. Мне же нужно, что-бы пользователь нажал Автомат, колонка "Количество" расчиталась, и пользователь, сняв галочку Автомат, приступил к редактирыванию заказа.
#13
by gornovrom
А если не в данные строки записывать, а в саму ячейку? ОформлениеСтроки.Ячейки[ИмяЯчейки].Значение = <Значение>. И потом обрабатывать изменение этой ячкейки.
#14
by Mirnin
правильно говорит. > проблема совсем не в том! Очень даже в том. Процедура ПриВыводе вызывается при обновлении формы, неотрисованные строки рассчитываться не будут. К тому же, по твоей концепции, даже если не учитывать необходимость прокрутки ТЧ, пользователю нужно ставить и убирать галочку. Хотя быстрее и проще по нажатию кнопки пробегать все строки таблицы.
#15
by D_E_S_131
"проблема совсем не в том!" — да я уже понял, что проблема в том, что месье извращенец.
#16
by MrCrowley1988
в саму ячейку нельзя, т.к. это реквизит, и его пользователь возможно будет изменять, а потом нужно распечатать (а в макете прописан именно реквизит). С удовольствием, но как? Как мне по нажатию кнопки обратиться (считать значения) к ячейкам Продажи и Конечный остаток? По идее, только через ОформлениеСтроки?
#20
by MrCrowley1988
, как мне обратиться к колонкам Продажи и Конечный Остаток? Это простые ячейки с текстом.
#21
by mistеr
Все, расчетные данные, которые нужны пользователю, должны храниться в реквизитах ТЧ. При этом их можно не разрешать редактировать пользователю. В общем, не выделывайтся, а делай заполнение так же, как в типовых, по кнопке "Заполнить...".
#23
by MrCrowley1988
, смотрите. Данные Продажи и Конечный остаток - не постоянные. Пользователь устанавливает период (есть два поля для выбора начальной и конечной даты), и в них отображаются (ячейка.оформлениестроки.установитьтекст) продажи за этот период, и конечный остаток состоянием на конечную дату. Смысл делать отдельные реквизиты и засорять БД? Я и так все считываю запросами (и продажи, и конечный остаток). Мне всего лишь нужно загнать разницу Продажи и Конечный остаток (она у меня считается, все в этом плане нормально!) в реквизит "Количество". Неужели это так сложно сделать? Просто через ТоварыПриПолученииДанных для каждой строки установить значение реквизита "Количество"? Просто через ДанныеСтроки у меня не получается, может можно как-то по другому?
#27
by MrCrowley1988
Вот мой действующий вариант, который работает, но нужно проматывать строки. | ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
#28
by MrCrowley1988
, нижний кусочек кода: Если ЭлементыФормы.Автомат.Значение = Истина тогда мне нужно адаптировать под процедуру и все, я от всех отстану :-)
#29
by DTXqueque
Оправдания ожидались.. Ты понимаешь, что для каждой отрисовки строки у тебя выполняется запрос?
#30
by MrCrowley1988
, да. У меня есть оправдание - это все делал не я! Но теперь нужно исходить из того, что у меня есть.
#31
by D_E_S_131
Тебе, по хорошему, можно было бы сделать обработку. В ней ввести исходные данные, получить расчетные в табличную часть обработки (база не будет засоряться как раз!). После просмотра/изменения данных пользователем пусть жмут на кнопку, которая и сформирует "Заказы поставщикам". Как раз не придется менять текущий горе-функционал и вернешься к нормально-ориентированным людям.
#32
by MrCrowley1988
Всем спасибо за ответы. Сделал все добавлением необходимых реквизитов к ТЧ, и не через ПриВыводеСтроки, а кнопочкой (запросы выполняются только при нажатии на кнопку, а не при каждом выводе/перевыводе каждой строки). Еще раз, всем спасибо.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Как запустить обычную форму в управляемом приложении? 8.3.
- Открыть форму внешней обработки
- Запрос по справочнику и RLS
- Замена вида номенклатуры обработкой.
- Как в v8 сделать пересчет суммы в ТЧ документа
- Вопрос по декларации НДС Бухгалтерия 3.0
- Ут 10 Как записать ТабДок в Excel?
- КД2 Перенос ед.изм. в РС штрихкоды
- 1С8_УТ11_Идентификаторы объектов метаданных
- Компонента 1С:Печать штрихкодов не установлена на данном компьютере!
- Обновление Бух 2.0 на 3.0 - ссылки на объекты, помеченные на удаление
- Как формировать произвольные типы XDTO-пакетов в мобильном приложении
- не работает веб клиент во фрейме
- Печать строки табличного документа на разных страницах.
- При программном проведении документа из обработки документ очищается
- Признак модифицированности неосновного реквизита управляемой формы
- Некорректное обновление типовой конфигурации УТП для Кахахстана
- 1с 8.3 Макет, доступ к ячейкам в цикле
- Что означает амперсанд в тексте запросов
- Добавить в избранное внешнюю обработку