Имя: Пароль:
1C
1C 7.7
v7: Неопределённое количество столбцов табличной части
0 Kolombina
 
17.12.12
14:25
Имеется: в нетленке документ, который устанавливает цены в разных магазинах. Количество магазинов может меняться. Для каждого магазина могут быть свои цены. Сейчас документ выглядит так: в табличной части есть поля "ЦенаМагазина1", "ЦенаМагазина2" и тд, на форме документа цены на каждый товар выстраиваются дальше в строчку по магазинам. То есть, с добавлением магазина надо вносить дополнительные поля в табличную часть.
Задача: переделать этот документ, чтобы избавиться от тупого добавления полей "ЦенаМагазина" с ростом количества магазинов.

Посоветуйте, пожалуйста, как сделать красивше и оптимальнее? (база скульная)
1 mikecool
 
17.12.12
14:26
Товар | Магазин | Цена
2 Kolombina
 
17.12.12
14:27
(1) А если хочется оставить именно в строчку цены по магазинам?
3 mikecool
 
17.12.12
14:27
(2) сделай ТЗ на форме, заполняй по таб. части как душе будет угодно
4 mikecool
 
17.12.12
14:28
+3 на обучении по бухии 77 делал такое году эдак 2002
5 Mikeware
 
17.12.12
14:28
(2) хранение - "товар-магазин-цена"
а представление делай такое, какое хочешь
6 ЧеловекДуши
 
17.12.12
14:28
Вам в сторону "ТЗ + Табличная часть документа"...
Лучше вообще количество магазинов в документе = Количество закладок на форме.
...
Т.е. в ТЗ - отображаешь в диалоге
Табличную часть прячешь и пишешь туда так, как хочешь, т.е. используешь её в качестве хранилища.
7 Mikeware
 
17.12.12
14:29
лучше не ТЗ, а ТП.
8 ЧеловекДуши
 
17.12.12
14:29
(7)Это еще лучше, но быстрее ТЗ :)
9 mikecool
 
17.12.12
14:29
(7) про формекс вопрос не поднимался
10 Kolombina
 
17.12.12
14:30
(6) 50 вкладок - очень неудобно
11 ЧеловекДуши
 
17.12.12
14:30
+ В качестве реализации
12 Cthulhu
 
17.12.12
14:30
(1)+: по кнопке - ТабРВД со свернцтыми строками по товарам и колонками по магалинам, с отработкой сохранения в (1) - и хоть обвводись.
13 Mikeware
 
17.12.12
14:30
(9) ТП - это не формекс
14 Kolombina
 
17.12.12
14:30
(9) а что смотреть на формексе?
15 Cthulhu
 
17.12.12
14:31
(13): и, строго говоря, не 1с тоже.
16 ЧеловекДуши
 
17.12.12
14:31
(10)50 вкладок!!!!
Вы шо, вкладки добавляются по мере заполнения документа.
И к тому же, кто сказал, что должен быть только один документ?
...
Но вам виднее :)
17 Mikeware
 
17.12.12
14:31
(10) мало? можно еще вертикальные закладки добавить - по товарам. в результате будет одно поле ввода :-))
18 ЧеловекДуши
 
17.12.12
14:31
(14)На формексе смотреть изменяющую размер ТП (Табличное поле) или ТЗ (таблица значений)
19 WoodMan
 
17.12.12
14:32
(10) а 50 колонок удобно?
20 Mikeware
 
17.12.12
14:32
(15)да?? а что тогда?
21 Mikeware
 
17.12.12
14:32
(19) визуально - да.
22 ЧеловекДуши
 
17.12.12
14:33
(20)Могу предположить, 1С++ :)
23 ЧеловекДуши
 
17.12.12
14:33
(21)Сомневаюсь :)
24 Kolombina
 
17.12.12
14:33
(19) имхо, 50 колонок удобнее 50 вкладок, плюс 50 колонок там уже есть
25 ЧеловекДуши
 
17.12.12
14:33
+ Без скрина не поверю
26 ЧеловекДуши
 
17.12.12
14:34
(24)ВЫложи скрин, дай посмотреть на сей "удобное чудо"
27 WoodMan
 
17.12.12
14:35
для удобности тут что-то типа таблицы в режиме ввода данных надо делать
28 Kolombina
 
17.12.12
14:35
(26) я не сказала удобное, я сказала удобнЕЕ
29 ЧеловекДуши
 
17.12.12
14:39
(28)Поди еще в каждый магазин может быть отгружено не одинаковое количество, чего либо?
Кто вообще поленился заводить 50 документов и решил, что в одном документе будет проще?
30 ЧеловекДуши
 
17.12.12
14:40
+(28)Это ты что-ли сама сделала? О_о... "УдобнЕЕ чудо"
31 ЧеловекДуши
 
17.12.12
14:41
+(28)ТП - дает равноправный интерфейс, который доступен простому пользователю при редактировании документа, справочника.
32 Mikeware
 
17.12.12
14:41
(29) с отгрузкой расценка не совсем связана.
кроме того, что мешает ставить "0" (или вобще блокировать ввод в тех ячейках, которые не надо переоценивать?)
33 Бывший адинэсник
 
17.12.12
14:42
(1) в варианте Товар | Магазин | Цена
есть один важный нюанс придётся по нескольку раз добавлять один и тот же товар, что скажется на юзабилити.
34 Mikeware
 
17.12.12
14:42
(31) а что такое "равноправный интерфейс"?
35 ЧеловекДуши
 
17.12.12
14:42
(32)Не знаю, но я бы это назвал еще проще - Перемещение Товара.
36 BAPBAP
 
17.12.12
14:43
(0) Посмотри, как реализован документ "УстановкаЦенНоменклатуры" в УТ.
37 ЧеловекДуши
 
17.12.12
14:43
(33)Да, она это знает.
(34)Даёт так же интерактивно изменять некие данные.
38 ЧеловекДуши
 
17.12.12
14:45
(36)Успокойся. Ей, пойди, была поставлена задача облегчить перемещение товара. Т.е. что бы одним документом можно было махом отправить товар по разным Ларькам.
В итоге мутатн-задача со временем приобрел ужасающий размер и громадную лень самого оператора :)
39 BAPBAP
 
17.12.12
14:48
(38) Так я и не буяню, вроде
40 Kolombina
 
17.12.12
14:53
(38) Мне поставлена задача переделать документ, чтобы избавиться от полей  "ЦенаМагазина1", "ЦенаМагазина2" и тд, при незначительном внешнем изменении имеющихся форм.
41 Ёпрст
 
17.12.12
14:55
(40) 3 реквизита табличной части - Цена, Магазин,Товар и привет.
На форму кладешь ТЗ  (а лучше ТП) , в ПриОткрытии заполняешь этот контрол, в ПриЗаписи с этого контрола загоняешь в ТЧ дока..
Всё собственно.
42 Mikeware
 
17.12.12
15:02
(41) так ровно это ей и говорят уже пол-часа
43 Ёпрст
 
17.12.12
15:04
942) ну, мот допетрит до конца света.
44 Mikeware
 
17.12.12
15:06
(43) его что, сегодня выключают?
45 2012_12_17
 
17.12.12
15:07
Процедура ПриОткрытии()
   глДокументПриОткрытии(Контекст);
   ДатаПреж=ДатаДок;    
   
   Если Выбран() = 1 Тогда
       ЗаполнитьТабличныеЧасти( ТекущийДокумент() );
   КонецЕсли;
   
КонецПроцедуры  // ПриОткрытии
46 Mikeware
 
17.12.12
15:08
(45) гениТально!
47 2012_12_17
 
17.12.12
15:08
//-----------------------------------------------
Процедура ПриЗаписи()
   
   Если ПустоеЗначение(Подразделение1)=1 Тогда
       Подразделение1=Подразделение;   //***ШО чтобы обойти проверку вида метаданных при записи
   КонецЕсли;
   
   Если глДокументПриЗаписи(Контекст,,0,,,)=0 Тогда
       Возврат;
   Иначе
       
   КонецЕсли;
   
   
   НачатьТранзакцию();  
   
   Если Подразделение1=Подразделение Тогда
       Подразделение1=ПолучитьПустоеЗначение(Подразделение);
   КонецЕсли;
   
   Записать();
   ФормаМодифицирована = 0;
   
   ДействияЗагрузили = 0;
   
   д = СоздатьОбъект( "Документ" );
   док = СоздатьОбъект( "Документ" );
   док.ВыбратьПодчиненныеДокументы(,, ТекущийДокумент() );
   Пока док.ПолучитьДокумент() = 1 Цикл
       Если ДействияЗагрузили = 0 Тогда
           Если док.Вид() = "тчПротоколЦен" Тогда
               Если д.НайтиДокумент( док.ТекущийДокумент() ) = 1 Тогда
                   док.ЗагрузитьТабличнуюЧасть( Действия );
                   док.Записать();
                   ДействияЗагрузили = 1;
               КонецЕсли;
           КонецЕсли;
       КонецЕсли;              
   КонецЦикла;            
   
   Если ДействияЗагрузили = 0 Тогда
       док = СоздатьОбъект( "Документ.тчПротоколЦен" );
       док.Новый();
       док.ДатаДок = ДатаДок;
       док.УстановитьНовыйНомер();
       док.ДокОснование = ТекущийДокумент();
       док.ЗагрузитьТабличнуюЧасть( Действия );
       док.Записать();
   КонецЕсли;    
   
   ЗафиксироватьТранзакцию();
   
   СформироватьДокументы();
   
КонецПроцедуры  // ПриЗаписи
48 2012_12_17
 
17.12.12
15:09
//*******************************************  
Процедура ЗаполнитьТабличныеЧасти( ДокОснование )
   
   Если ДокОснование.Выбран() = 1 Тогда
       док = СоздатьОбъект( "Документ" );
       док.ВыбратьПодчиненныеДокументы(,, ДокОснование.ТекущийДокумент() );
       Пока док.ПолучитьДокумент() = 1 Цикл
           Если док.Вид() = "тчПротоколЦен" Тогда
               док.ВыгрузитьТабличнуюЧасть( Действия );
           КонецЕсли;
       КонецЦикла;
   КонецЕсли;
   УстановитьПараметрыТаблиц();
КонецПроцедуры
//*******************************************
49 2012_12_17
 
17.12.12
15:11
Процедура УстановитьПараметрыТаблиц()
   
   Действия.УстановитьПараметрыКолонки( "ФирмаТЧ",,,,"Фирма",10);
   Действия.УстановитьПараметрыКолонки( "КонтрагентТЧ",,,,"Контрагент",15);
   Действия.УстановитьПараметрыКолонки( "ДоговорТЧ",,,,"Договор",15);
   
КонецПроцедуры
50 2012_12_17
 
17.12.12
15:15
(0) собственно (43) говорит вот об чем: пример у меня два документа Сводный протокол цен и его ВТОРАЯ табличная часть оформленная как документ тчПротоколЦен - в шапке этого документа тчПротоколЦен один реквизит : ДОКУМЕНТОСНОВАНИЕ  тип значения которого ДОКУМЕНТ.СводныйПротоколЦен
51 2012_12_17
 
17.12.12
15:17
В табличной части документа тчПротоколЦен я расположил три реквизита ФирмаТЧ КонтрагентТЧ и ДоговорТЧ , ну а Вам надо расположить Ваши    Товар | Магазин | Цена
52 Mikeware
 
17.12.12
15:18
(50) одна из классических для клюшек реализаций второй табчасти...
53 Mikeware
 
17.12.12
15:19
+(52) но зачем ей вторая табчасть, если ей вполне хватит первой?
54 Ёпрст
 
17.12.12
15:19
(52) только вот тс это как бэ не надо восе :)
55 2012_12_17
 
17.12.12
15:19
У меня сводный протокол создает энное число протоколов цен для эмного числа продукции, ограниченной тройкой ФИРМА/Контрагент/Договор
56 Mikeware
 
17.12.12
15:21
(54) да просто завсом тупит, как всегда...
57 Kolombina
 
17.12.12
15:21
спасибо за советы
58 akaBrr
 
17.12.12
15:31
(54)а что надо? костыль со служебным документом совсем не устраивает
Программист всегда исправляет последнюю ошибку.