|
|
|
Выделение нескольких строк в табличной части документа | ☑ | ||
|---|---|---|---|---|
|
0
katya2
02.05.08
✎
19:29
|
Документ Перемещение ТМЦ, при отсутствии на складе нужного количества товара выводится соответствующий комментарий, документ не проводится. Если табличная часть большая, а наименование товара длинное и несколько наименований отличаются только последними индексами, то получается неудобно смотреть в комментарий, а потом искать нужный товар в табличной части документа.
Пользователь попросил меня каким-то образом выделять в табличной части документа позиции номенклатуры, которых не хватает на складе. Покопавшися в свойствах, я не нашла такой возможности. Единственное, до чего я додумалась - создать новый реквизит табличной части и в него выводить какой-то знак в строчках нужной номенклатуры. Но и это реализовать у меня пока не получилось. Подскажите, как лучше решать эту задачу, или ссылку, где она уже решалась. |
|||
|
1
ТелепатБот
гуру
02.05.08
✎
19:29
|
||||
|
2
Garkin
02.05.08
✎
19:43
|
"создать новый реквизит табличной части и в него выводить какой-то знак в строчках нужной номенклатуры"
Достойный внимания вариант. Почему не получилось? |
|||
|
3
Фокусник
02.05.08
✎
19:45
|
(0) если помечать нужно с возможностью сохранения пометки - то новый реквизит, например число 0 - не помечено, 1 - помечено. Причем визуально лучше текст добавить - плюсики. Устанавливать его в процедуре ПриНачалеРедактирования - определять форма.текущаяколонка(), если нужная колонка, то реквизит = 1 или 0. В отображаемом тексте ?(реквизит = 1, "+", ""). Если чего не понятно - пригласите программиста (:
|
|||
|
4
katya2
02.05.08
✎
19:48
|
Не знаю, как записать значение в строку табличной части открытого документа. Почитала форум и поняла, что это делается при записи документа (правда, как делается - не поняла). То есть нужно лезть и редактировать типовые процедуры типа Записать. И подумала, что это как-то криво, не красиво...
Неужели, эта проблема нигде не всплывала? |
|||
|
5
katya2
02.05.08
✎
19:53
|
(3) Помечать нужно просто, чтоб было видно в открытом документе, без сохранения пометок.
Вроде понятно вы написали, попробую так сделать. Только не понятно, когда табличная часть обновится, чтоб плюсики видно стало. Программиста приглашать не нужно :) Я учусь на базе (копии домашней) магазина моего отца. У них программиста нет, но и запросы маленькие. |
|||
|
6
laeg
02.05.08
✎
19:55
|
(4) Без изменения конфигурации ни как
|
|||
|
7
у лю 427
02.05.08
✎
20:07
|
самое простое, без сильного вмешательства
на форму дока под табл частью кладем текст, в него пишем формулу ВЫВОДНАИМЕНОВАНИЯ() а форму дока добавляем функцию Функция ВЫВОДНАИМЕНОВАНИЯ() если пустоеЗначение(LineNum) = 1 тогда возврат ""; конецесли; если пустоеЗначение(Товар) = 1 тогда возврат "Товар в строке не выбран"; конецесли; если пустоеЗначение(Товар.ПолнНаименование) = 1 тогда возврат Товар.Наименование; иначе возврат Сокрлп(Товар.Наименование) конецесли; конецФункции длина поля для вывода текста должна быть на всю ширину дока.... и будет видно полное название товара при перемещении по таб части |
|||
|
8
katya2
02.05.08
✎
20:11
|
(3) Процедура ПриНачалеРедактирования вызывается при попытке редактировать табличную часть.
Мне нужно, чтобы строки выделялись как-то сразу после попытки проведения. Ну в крайнем случае при нажатии какой-то кнопки или галочки. |
|||
|
9
у лю 427
02.05.08
✎
20:11
|
Добавление новой колонки (текстовой) в табличную часть нагляднее, но сложнее
об этом с такими знаниями пока рано думать |
|||
|
10
katya2
02.05.08
✎
20:15
|
(7) А это уже реализовано в типовой. Именно так и сделано - под табличной частью строка с полным наименованием номенклатуры + артикул.
Но все равно приходится бегать туда-сюда курсором по табличной части в поисках нужных товаров, которых нет на складе. |
|||
|
11
katya2
02.05.08
✎
20:16
|
(9) Спасибо :) Буду учиться...
|
|||
|
12
у лю 427
02.05.08
✎
20:17
|
если работа с базой ненапряжная - тогда можно сделать проще
на форму в табчасть добавить кнопку Проверить в табличную часть добавить числовую колонку НЕДОСТАТОЧНО по кнопке запускается процедура, которая рассчитывает остатки товаров и заполняет колонку НЕДОСТАТОЧНО, но только для тех товаров, которых не хватает. Причем записать нужно ОСТАТОК товара на складе - чтобы юзер сразу видел строки с недостающим товаром и сразу видел, сколько можно отпустить |
|||
|
13
у лю 427
02.05.08
✎
20:21
|
а можно кнопку проверить не добавлять, а в кнопку ОК в формулу в начало добавить вызов процы #Записать? ПРОВЕРИТЬ() Провести .......
а в процедуре - заполнять колонку, если недостача товара и если была хоть одна недостача, тогда в этой проце следует написать если ЕстьНедостача > 0 тогда СтатусВозврата(0); конецесли |
|||
|
14
katya2
02.05.08
✎
20:25
|
Спасибо за идею насчет записи остатка!
Как это делать - буду разбираться потихоньку. Пока вопросов больше нет. офф: Я уже сделала подобную колонку и назвала ее "Не хватает на складе". Но все конечно не уместилось и осталось только "Не х..." |
|||
|
15
у лю 427
02.05.08
✎
20:27
|
именно нех!!!.....
но учти - это будет давать проколы при интенсивной работе с базой.... |
|||
|
16
у лю 427
02.05.08
✎
20:31
|
лень проверять.... это ж 8-ку надо запускать....
так как там в доке написано, Дмитрий Сергеевич? По полной схеме или по сокращенной....? |
|||
|
17
у лю 427
02.05.08
✎
20:31
|
пардон - не туда влепил....
|
|||
|
18
Мимохожий Однако
02.05.08
✎
21:06
|
Было бы интереснее добавить дополнительную печатную форму, в которой бы выводился список товара, которого не хватает. Там же можно показать сколько не хватает. Формировать, если вдруг не проводится документ :-)
|
|||
|
19
у лю 427
02.05.08
✎
21:08
|
для активной работы это не актуально...
хотя не повредит для общего случая.... |
|||
|
20
dk
02.05.08
✎
21:14
|
колонка или наименование конечно интересно, но может достаточно будет выводить номер строки в комментариях?
|
|||
|
21
DigitalDolphin
02.05.08
✎
22:13
|
Привет Катя :) ... или Катерина :)
На самом деле твоя проблема решаеться просто.. в момент проведения (процедура ОбработкаПроведения() - модуль проведения) ищещь место где отслеживает недостача товара и в этом месте пишешь код для пометки строки звездочкой, плюсиком или еще чего... конкретно код написать не могу, нужна конфигурация. Кстати если изменять документ в процедуре ОбработкаПроведения(), то изменения автоматически сохраняться :) Более подробно без конфы я тебе не напишу, так что удачи.. |
|||
|
22
у лю 427
02.05.08
✎
23:27
|
(21) вообще то моветон из модуля документа писать в док - но в данном случае не очень страшно....
P.S. вряд ли она найдет - опыта маловато |
|||
|
23
katya2
04.05.08
✎
16:25
|
Сделала! Может, кому-то пригодится.
Добавила в документ ПеремещениеТМЦ дополнительный реквизит и соотв. колонку в табличной части ОстатокНаСкладе. В ней просто вывожу остаток выбранной номенклатуры на выбранном складе. Сделала так: в модуле формы документа написала функцию: ****************************************************************************** // ОстатокНаВыбранномСкладе(ТекНоменклатура, СкладОтправитель) // Описание: // Заполняет столбец КоличествоНаСкладе в табличной части документа. Показывает количество номенклатуры, находящейся в данный момент на складе // Функция ОстатокНаВыбранномСкладе(ТекНоменклатура, СкладОтправитель) ТаблОстатков = СоздатьОбъект("ТаблицаЗначений"); ОстаткиТМЦ.УстановитьЗначениеФильтра("Номенклатура", ТекНоменклатура, 1); ОстаткиТМЦ.ВыгрузитьИтоги(ТаблОстатков,1,1); ТаблОстатков.ВыбратьСтроки(); Остатки = 0; Пока ТаблОстатков.ПолучитьСтроку() = 1 Цикл Если ТаблОстатков.Количество <> 0 Тогда Если ТаблОстатков.Склад.Код = СкладОтправитель.Код Тогда Остатки = ТаблОстатков.Количество; КонецЕсли; КонецЕсли; КонецЦикла; Возврат Остатки; КонецФункции; //ОстатокНаВыбранномСкладе() А внутри функции ПриИзмененииНоменклатуры() в самом конце добавила строку: КоличествоНаСкладе = ОстатокНаВыбранномСкладе(Номенклатура, Склад); Если что-то неграмотно или некрасиво, прошу поправить. |
|||
|
24
DigitalDolphin
04.05.08
✎
18:53
|
Ну в принципе конечно своей цели ты добилась, но грамотным решение назвать нельзя. По сути то что ты сделала есть метод регистра который это как раз выполняет твою задачу. И ты могла написать ОстаткиТМЦ.СводныйОстаток(-"Правильно указываешь параметры"-) :-)
СводныйОстаток(<?>,) Синтаксис: СводныйОстаток(<Измерен1>,<Измерен2>...,<ИмяРесурса>) Назначение: Возвращает значение сводного остатка заданного ресурса регистра. Параметры: <Измерен1>,<Измерен2>... - значения измерений регистра; <ИмяРесурса> - название требуемого ресурса регистра. Замечание: Измерения могут задаваться с пропусками (неуказанное значение - просто запятая), фиксируются только указанные измерения. Метод используется только для регистров остатков. |
|||
|
25
DigitalDolphin
04.05.08
✎
18:57
|
Да... Катерина хорошего сына Егора воспитываешь.. Молодец :-)
|
|||
|
26
katya2
05.05.08
✎
13:30
|
Спасибо! Переделала с функцией СводныйОстаток, все работает.
|
|||
|
27
DigitalDolphin
05.05.08
✎
22:56
|
Катерина... Выходи на связь в Mail.ru через агент... пообщаемся.
Мой адрес imgsrc_dd@mail.ru Жду :-) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |