Имя: Пароль:
1C
1C 7.7
v7: Несколько вопросов по поводу конфигурирования в 7.7
0 sapravka
 
15.11.12
20:48
Здравствуйте!
Конфигурация самописная, про общепит: Это документ списания. И списываются как просто позиция номенклатуры, так и блюда (у которых своя цена) в одном документе. Добавил новый реквизит в табличную часть – сумма и добавил его руками в табличную часть и начались вопросы ...

http://волгалаб.рф/1c/12.jpg

Подскажите, пожалуйста,  как в 7.7 в форме документа, в табличной части:
1.    Добавить ИДЕНТИФИКАТОР и прописать его модуле формы? (или куда необходимо)
2.    Как сделать доступными поля – сделать недоступным и запретить редактирование.
3.    И самое главное – где и как прописать, что бы сумма бралась с другого документа/документов по каждой позиции номенклатуры в данном ИДЕНТИФИКАТОРЕ?
1 ТакВотЖе
 
15.11.12
20:54
ты вставил в форму текст, а тебе нужно вставить твой новый реквизит "Сумма".
В главном меню "Вставить" - "Реквизиты" - поставить крыжик на реквизите табличной части.
А СП читать не пробовал?)
2 sapravka
 
15.11.12
21:01
Пробывал сначала сам
уже полдня убил - яндекс и гугл были помощниками...
Но вот все равно все найти не смог...
А насчет: В главном меню "Вставить" - "Реквизиты" - поставить крыжик на реквизите табличной части.

http://волгалаб.рф/1c/13.jpg

Где именно необходимо поставить крыжик?

А поподробнее можно, для тех кто на бронепоезде?
3 ТакВотЖе
 
15.11.12
21:02
не.. тебе не поможет)
бросай это дело)
4 sapravka
 
15.11.12
21:03
Да вот хочу доделать и честно брошу - больше с 7.7 связываться не буду
5 ТакВотЖе
 
15.11.12
21:04
ну, бог в помощь)
6 AlexNew
 
15.11.12
21:32
(4) Не ограничивай себя 7.7.
7 sapravka
 
15.11.12
21:35
Бог меня услышал и помог...

Остался только третий вопрос:
Где и как прописать, что бы сумма бралась с другого документа/документов по каждой позиции номенклатуры в данном ИДЕНТИФИКАТОРЕ?

Я думаю в модуле формы...
Подскажите, пожалуйста, как получить ссылку с другого документа (сумма) и поставить её в моем новом реквизите (столбце)?
8 AlexNew
 
15.11.12
21:39
(7) Будь мухиком, брось до (4) хотя бы честно.
9 НикДляЗапросов
 
15.11.12
21:42
Ну бери табличную часть 1го документа и проставь суммы во втором
10 AlexNew
 
15.11.12
21:45
(9) А потом строчки местами в первом поменяй.
11 НикДляЗапросов
 
15.11.12
21:46
(10) Зачем?
12 AlexNew
 
15.11.12
21:46
(11) Затем, чтобы данные остались актуальны.
13 aka AMIGO
 
15.11.12
21:47
есть 2 функции
ПриНачалеВыбораЗначения(..)
ОбработкаВыбораЗначения(..)
в них можно вставить любой код обработки
14 aka AMIGO
 
15.11.12
21:48
в т.ч. запрос по выбору нужных документов
15 AlexNew
 
15.11.12
21:50
(14) Ты не сказал, что ему там ссылку хранить придется.
16 aka AMIGO
 
15.11.12
21:50
Процедура ПриНачалеВыбораЗначения(Идент,Флаг)
//..........
   ИначеЕсли Идент = "Резерв" Тогда
       Флаг = 0;
       Рез = СоздатьОбъект("Регистр.РезервыТоваров");
       Рез.ВременныйРасчет();
       
       Рез.УстановитьФильтр(Товар);
       Если КонДата >= ПолучитьДатуТА() Тогда
            РассчитатьРегистрыПо(ПолучитьПозициюТА());
       Иначе    
            РассчитатьРегистрыПо(КонДата);
       КонецЕсли;                                
           
       СписДок = СоздатьОбъект("СписокЗначений");
       Рез.ВыбратьИтоги();
         Пока Рез.ПолучитьИтог() = 1 Цикл
                СписДок.ДобавитьЗначение(Рез.ПоСчету);
         КонецЦикла;    
             
         Если СписДок.РазмерСписка() > 0 Тогда
             Поз = 0;ВыбЗнач = "";
             Если СписДок.ВыбратьЗначение(ВыбЗнач,,Поз,,0) > 0 Тогда
                 ОткрытьФорму(СписДок.ПолучитьЗначение(Поз));
             КонецЕсли;    
         КонецЕсли;
         
         
         
   Иначе
        Возврат;
       
   КонецЕсли;

и т.д.
17 aka AMIGO
 
15.11.12
21:52
(15) мож она ему и нужна..
пусть экспериментирует, прекрасное лего для разминки мозгов :)
18 AlexNew
 
15.11.12
21:53
(16) А такая длинная полоска...
19 aka AMIGO
 
15.11.12
21:54
(18)не завидуй :)
20 AlexNew
 
15.11.12
21:55
Рез.ВыбратьИтоги();
         Пока Рез.ПолучитьИтог() = 1 Цикл
                СписДок.ДобавитьЗначение(Рез.ПоСчету);
         КонецЦикла;    
И не только. Комментировать?
21 aka AMIGO
 
15.11.12
21:56
(20)"поСчету" измерение регистра. Пояснять надо?
22 AlexNew
 
15.11.12
21:59
(21) Ты как в том анекдоте "Мутацию мыть надо". Выгрузить в таблицу, в список. СП в помощь.
23 AlexNew
 
15.11.12
21:59
Про именования и форматирование - вообще молчу.
24 aka AMIGO
 
15.11.12
22:01
(22)я в чужой код не лажу. "Работает - не трогай" - железный прынцып.
иначе пришлось-бы много подчищать за предыдущим программистом, царствие ему небесное..
25 AlexNew
 
15.11.12
22:02
(24) Не цитируй хрень, тогда. Рад, что это не ты.
26 Ork
 
15.11.12
22:03
(22) + (23) Нет! Классика жанра. Вот она где :

РассчитатьРегистрыПо(ПолучитьПозициюТА());

Интересно. Только у меня итоги на ТА уже посчитаны?
27 aka AMIGO
 
15.11.12
22:05
+24 кстати, наименование этой конфы "Торговля". Именно просто: торговля, а не ТиС, от прежней торговли 7.5 (!) не осталось ничего. И я имею то, что имею.

ладушки.. вас ни в чем не переспоришь..

всего-то хотел пример процы привести..
Да, кстати, ТС может чем-то из моих подсказок и воспользоваться, а от вашей критики - увы.. :)
28 AlexNew
 
15.11.12
22:07
(27) Боже упаси.
(26) Ты еще скажешь в типовых посмотреть:)
29 Ork
 
15.11.12
22:07
(27) ТС уже помогли в (6). Теперь уже просто развлекуха.
30 AlexNew
 
15.11.12
22:07
(27) Хотя, если задумается над этим... Полезно.
31 aka AMIGO
 
15.11.12
22:09
(0) Процедура ПриНачалеВыбораЗначения(Идент,Флаг)
//..........

   ИначеЕсли Идент = "ИндентификаторКолонкиТЧ" Тогда
       Флаг = 0;
//..... далее ищи свои документы, и извлекай из них всё, что надо.
32 Ork
 
15.11.12
22:13
+(29) Моих мозгов, например, не хватает даже что бы просто понять :
"что бы сумма бралась с другого документа/документов по каждой позиции номенклатуры в данном ИДЕНТИФИКАТОРЕ"

Кто на ком стоял? Как в идентификаторе может храниться "каждая позиция номенклатуры". И тем более не могу понять каким образом хочет ТС "сумма бралась с другого документа/документов". Это вообще о чем?
Сумма по моему скромному ИМХУ есть результат сложения некоторого количества некоторых числовых величин. Где эти числовые величины в идентификаторе?
33 ТакВотЖе
 
15.11.12
22:14
(32) )))))
34 AlexNew
 
15.11.12
22:14
(32) А код примера ты все-таки понял?:)
35 AlexNew
 
15.11.12
22:15
(31) Уже лучше.
36 Ork
 
15.11.12
22:16
(34) А вот код примера не сработает. НиКаДа. Нет у ТаблицыЗначений, даже помещенной на форму педальки. Соответственно и метод вызван не будет.
37 ТакВотЖе
 
15.11.12
22:17
человек не может реквизит на форму вывести, а вы ему про какой-то код.. оставьте уже парня в покое, не засоряйте ему мозг)))
38 Ork
 
15.11.12
22:17
+(36) Все нужно уносить в ПриНачалеРедактированияСтроки()
39 AlexNew
 
15.11.12
22:18
(37) Того парня мы давно не трогаем. Мы про советчиков...
40 Ork
 
15.11.12
22:19
+(38) Если на форме таки ТабличнаяЧасть. Если ТаблицаЗначений - В ее свойствах - указать нужную процедуру и только там уже определяться с АктивнойКолонкой.
41 ТакВотЖе
 
15.11.12
22:19
(39) ах у вас здесь междусобойчик?)) пардон тогда)
42 sapravka
 
15.11.12
22:24
Господа подскажите:

Процедура ПриВыбореКоличества()      

   СпрКальк.ВыбратьЭлементы();
   Пока СпрКальк.ПолучитьЭлемент()>0 Цикл
       Сумма=Сумма+СпрКальк.Номенклатура.Цена*СпрКальк.Количество;
   КонецЦикла;                                  
     Сумма=Сумма*Количество;
           
КонецПроцедуры

где СпрКальк – справочник калькуляционный


То есть необходимо написать такую процедуру, что бы при добавлении (изменении) количества автоматом менялась сумма,  а эта сумма не меняется и не заполняется...

http://волгалаб.рф/1c/14.jpg
43 Ork
 
15.11.12
22:30
(42) Для разминки. (Предупреждаю - для разминки).

1. Вместо
СпрКальк.ВыбратьЭлементы();
писать
СпрКальк.ВыбратьЭлементы(0); //Обращаю внимание на параметр "0"

2. В конфигураторе в форме (обращаю внимание - именно в редакторе форм) пощелкать на колонке "Количество". Найти закладку "Дополнительно" и в поле "Формула" вписать : ПриВыбореКоличества()
44 Ork
 
15.11.12
22:33
+(43) Сумма скорее всего начнет меняться. Правда, я думаю, не совсем так, как вам нужно. Но про то дальше...
45 Тьма
 
15.11.12
22:38
Мне одному кажется, что стоимость уксусной кислоты в общепите считается не из данных калькуляционной карты, а исходя из остатка на складе или хотя бы из цены прихода?
46 AlexNew
 
15.11.12
22:42
(45) Не пей ее столько на ночь...
47 sapravka
 
15.11.12
23:24
Сумму необходимо получить со справочника, но есть 2 справочника:
1 Справочник блюда .
2. Справочник номенклатура.

Вот пытаюсь, что-то получить:
В самом начале добавил:
Перем Рез;

А потом:

Процедура ПриНачалеВыбораЗначения(Идент,Флаг)


   Если Идент = "Сумма" Тогда
       Флаг = 0;
       
   СписДок = СоздатьОбъект("СписокЗначений");
       Рез.ВыбратьИтоги(0);
   Пока Рез.ПолучитьИтог(0) = 1 Цикл
        СписДок.ДобавитьЗначение(Номенклатура.Цена);
   КонецЦикла;        
           
   Иначе
        Возврат;    
   КонецЕсли;    

КонецПроцедуры
   
Подскажите пожалуйста как выбрать суммы с этих 2 справочников (и затем соответственно умножить на количество), так как бывает то блюдо, то номенклатура и сделать так, что бы сумма проставлялась?
48 zak555
 
16.11.12
00:27
хапрос
49 sapravka
 
16.11.12
00:48
Я уже больше 10 часов пытаюсь создать данный запрос, что бы была возможность автоматической проставлении суммы при заполнении документа...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший