Имя: Пароль:
1C
1C 7.7
v7: как добавить новую строку не удаляя те которые есть Метод НоваяСтрока()
0 nacinayu1c
 
16.07.11
21:43
Процедура ПриВыбореСотрудника()
       Если Сотрудник.Выбран() = 1 Тогда
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
           ит.ИСпользоватьсубконто(ВидыСубконто.Сотрудники,Сотрудник);
           Ит.ИспользоватьСубконто(ВидыСубконто.ВидыРаботСотрудников);
           ТекДата = НачМесяца(ДатаДок);    
           Ит.ВыполнитьЗапрос(ТекДата, КонМесяца(ДатаДок), "ОВ", , , , "Месяц");
           Ит.ВыбратьСубконто(1);
           Пока  Ит.ПолучитьСубконто(1) = 1 Цикл
               Ит.ВыбратьСубконто(2);
               Пока Ит.ПолучитьСубконто(2) = 1 Цикл
                   
   НоваяСтрока();
   Сотрудник = Ит.Субконто(1);
ВидыРабот_ = Ит.Субконто(2);
ВидыРабот = ВидыРабот_.ТекущийЭлемент().Наименование;
    Дней = Ит.ДО("К");
   Часов = Ит.ДО("С");

КонецЦикла;
КонецЦикла;
       КонецЕсли;
КонецПроцедуры    

если по счету ОВ есть допучтим три записями но с одинаковыми субкното1 и с разными субкното2  если в табличной части в ручную был выбран  сотрудник как добавить следующие две строчки ???
1 nacinayu1c
 
16.07.11
21:44
(0) в этой процедуре я получаю только данные третьей записи
ВидыРабот = ВидыРабот_.ТекущийЭлемент().Наименование;
    Дней = Ит.ДО("К");
   Часов = Ит.ДО("С");
2 nacinayu1c
 
16.07.11
21:48
(1) вернее данные последней записи
3 Лефмихалыч
 
16.07.11
21:51
(0) За тобой гонятся что ли?
Пиши по-русски и не торопись. Ни хрена не понятно.
4 nacinayu1c
 
16.07.11
21:54
(3) короче есть док.НекийДок:))
Мне нужно чтоб если в табличной части выбрали сотрудника
то добовлялись  автоматом новые строки  
где сотрудник = этот - же сотрудник а остальное  берем со счетапокоду(ОВ)
5 Лефмихалыч
 
16.07.11
21:54
(4) и что конкретно не получается?
6 nacinayu1c
 
16.07.11
21:55
Не получается вывести  эти  две строчки
7 Лефмихалыч
 
16.07.11
21:56
(6) почему не получается? ты не знаешь, как программно добавить строку в ТЧ?
8 nacinayu1c
 
16.07.11
21:58
смотри
в этом коде я получаю  все и сотра  виды работ и дни и часы
со счета ОВ

Процедура Заполнить()        
   Кол = КоличествоСтрок();
   Если Кол > 0 Тогда
       Если Вопрос("Вся введенная информация будет потеряна!" + РазделительСтрок + "Продолжить?", "Да+Нет") = "Нет" Тогда
           Возврат;
       КонецЕсли;
   КонецЕсли;
   УдалитьСтроки();
   
   Если (Подразделение.Выбран() = 0) И (Группа.Выбран() = 0 ) Тогда
           Ит = СоздатьОбъект("БухгалтерскиеИтоги");
           ит.ИСпользоватьсубконто(ВидыСубконто.Сотрудники);
           Ит.ИспользоватьСубконто(ВидыСубконто.ВидыРаботСотрудников);
           ТекДата = НачМесяца(ДатаДок);    
           Ит.ВыполнитьЗапрос(ТекДата, КонМесяца(ДатаДок), "ОВ", , , , "Месяц");
           Ит.ВыбратьСубконто(1);
           Пока  Ит.ПолучитьСубконто(1) = 1 Цикл
               Ит.ВыбратьСубконто(2);
               Пока Ит.ПолучитьСубконто(2) = 1 Цикл
                   
           НоваяСтрока();
Сотрудник = Ит.Субконто(1);
ВидыРабот_ = Ит.Субконто(2);
ВидыРабот = ВидыРабот_.ТекущийЭлемент().Наименование;
    Дней = Ит.ДО("К");
   Часов = Ит.ДО("С");
   ПриВыбореСотрудника1();;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроц
9 Обработка
 
16.07.11
21:58
(0) мне кажется у вас само постановка кривая. ЗА чем в табличной части доку чтобы фигурировали три сторки с одной фамилией??? Может быть надо колонки разбить для нужных даных???
10 nacinayu1c
 
16.07.11
21:59
(9) потому - что у виды работ разные
11 nacinayu1c
 
16.07.11
22:00
короче я не знаю как программно  сделать именно (0)
12 nacinayu1c
 
16.07.11
22:00
поможете??
13 Обработка
 
16.07.11
22:02
В табличной части какие колонки??? Каких типов?
14 nacinayu1c
 
16.07.11
22:04
Сотрудник.Тип-Спр.Сотрудники
ВидыРабот.Тип-Строка
Дней.Тип-Число
Часов.Тип-Число
15 nacinayu1c
 
16.07.11
22:07
(13) поможешь?
16 Обработка
 
16.07.11
22:07
то что ВидыРабот.Тип-Строка это плохо! Очень в редких случаях это делается. А сам док как называется и дл  чего?
17 nacinayu1c
 
16.07.11
22:08
это не типовая   док для начисления премии долго расказывать
18 nacinayu1c
 
16.07.11
22:09
короче чтоб автоматом по подразделениям или по группам или же  без того и другого заполнялся док я сделал а вот ка  быть с ручками не знаю
19 Обработка
 
16.07.11
22:09
короче на кнопку заполнить прикручиваешь процедуру кторый ты тут показал. Но это процедура заполняет по всем сотрам по всем видам работ. А вот если нужно заполнить по сотру, когда нужно реагировать по строчный ввод сотра то тогда юзай предопределенную процедуру
20 nacinayu1c
 
16.07.11
22:10
(16) помомги а
21 nacinayu1c
 
16.07.11
22:11
(19) А вот если нужно заполнить по сотру, когда нужно реагировать по строчный ввод сотра то тогда юзай предопределенную процедуру
нужно именно это  где юзать???
22 nacinayu1c
 
16.07.11
22:12
какую именно процедуру  то юзать??
23 Обработка
 
16.07.11
22:12
ищу что то не могу сразу вспомнить....
24 nacinayu1c
 
16.07.11
22:13
ок жду
25 nacinayu1c
 
16.07.11
22:14
а что в процедуре привыборесатра ни как???
26 Обработка
 
16.07.11
22:16
Процедура ПриНачалеВыбораЗначения(<?>,)
КонецПроцедуры
Синтаксис:
ПриНачалеВыбораЗначения(<ИдентЭлемДиалога>,<ФлагСтандОбр>)
Назначение:
Предопределенная процедура после выбора значения в форме выбора (выбор может быть инициирован в немодальном режиме интерактивно, при помощи элемента диалога с ''педалькой'').
<ИдентЭлемДиалога> - идентификатор элемента диалога, которым инициализирован выбор значения.
<ФлагСтандОбр> - флаг, изначально, при вызове процедуры равен 1, если в теле процедуры значение этого параметра поменять на 0, то стандартный процесс выбора значения не будет происходить.
Замечание:
Данная процедура может располагаться только в программном модуле формы.
27 Обработка
 
16.07.11
22:18
делай ВидыРабот  не текст а ссылкой к объекту так грамотней
28 Обработка
 
16.07.11
22:19
(25) можно реализовать. но там надо в первый раз пропустить новую строку а уж тольоко псоле вводить новые строки. зачем так изгалятся когда есть более изящное решение для таких случаев
29 nacinayu1c
 
16.07.11
22:20
Блин голова совсем уже варить не хочет  помаги мне
30 nacinayu1c
 
16.07.11
22:22
Процедура ПриНачалеВыбораЗначения(<?>,)
КонецПроцедуры

че в нее писать то нужно
31 Обработка
 
16.07.11
22:27
Процедура ПриНачалеВыбораЗначения(ЭлементДиалога, ФлагСтандартнойОбработки)    
   Если ЭлементДиалога = "Сотрудник" Тогда
       ФлагСтандартнойОбработки = 0;
       Если ВвестиЗначение(сотр,"введите сотра","Справочник.сотрудники") = 1 Тогда
           Ит = СоздатьОбъект("БухгалтерскиеИтоги");
           ит.ИСпользоватьсубконто(ВидыСубконто.Сотрудники,Сотрудник);
           Ит.ИспользоватьСубконто(ВидыСубконто.ВидыРаботСотрудников);
           ТекДата = НачМесяца(ДатаДок);    
           Ит.ВыполнитьЗапрос(ТекДата, КонМесяца(ДатаДок), "ОВ", , , , "Месяц");
           Ит.ВыбратьСубконто(1);
           Пока  Ит.ПолучитьСубконто(1) = 1 Цикл
               Ит.ВыбратьСубконто(2);
               Пока Ит.ПолучитьСубконто(2) = 1 Цикл
                   НоваяСтрока();
                   Сотрудник = Ит.Субконто(1);
                   ВидыРабот_ = Ит.Субконто(2);
                   ВидыРабот = ВидыРабот_.ТекущийЭлемент().Наименование;
                    Дней = Ит.ДО("К");
                   Часов = Ит.ДО("С");
               КонецЦикла;
           КонецЦикла;
       КонецЕсли;
   КонецЕсли;        
КонецПроцедуры
32 Обработка
 
16.07.11
22:27
ну вот так пробуй должно получиться
33 nacinayu1c
 
16.07.11
22:33
прошло аш семь циклов
строка 1 реквизит сотр естьзначение в остальных колонка нет не чего
строки 23456 вообще пустые
а 7  сотр заполнен  видыраб заполнен дней и часов тоже заполнен
34 Обработка
 
16.07.11
22:35
по какой процедуре?
35 nacinayu1c
 
16.07.11
22:37
Процедура ПриНачалеВыбораЗначения(ЭлементДиалога, ФлагСтандартнойОбработки)    
   Если ЭлементДиалога = "Сотрудник" Тогда
       ФлагСтандартнойОбработки = 0;
       Если ВвестиЗначение(сотр,"введите сотра","Справочник.сотрудники") = 1 Тогда
           Ит = СоздатьОбъект("БухгалтерскиеИтоги");
           ит.ИСпользоватьсубконто(ВидыСубконто.Сотрудники,Сотрудник);
           Ит.ИспользоватьСубконто(ВидыСубконто.ВидыРаботСотрудников);
           ТекДата = НачМесяца(ДатаДок);    
           Ит.ВыполнитьЗапрос(ТекДата, КонМесяца(ДатаДок), "ОВ", , , , "Месяц");
           Ит.ВыбратьСубконто(1);
           Пока  Ит.ПолучитьСубконто(1) = 1 Цикл
               Ит.ВыбратьСубконто(2);
               Пока Ит.ПолучитьСубконто(2) = 1 Цикл
                   НоваяСтрока();
                   Сотрудник = Ит.Субконто(1);
                   ВидыРабот_ = Ит.Субконто(2);
                   ВидыРабот = ВидыРабот_.ТекущийЭлемент().Наименование;
                    Дней = Ит.ДО("К");
                   Часов = Ит.ДО("С");
               КонецЦикла;
           КонецЦикла;
       КонецЕсли;
   КонецЕсли;        
КонецПроцедуры
по этой но щас заметил другое а именно  выходит четыре строчки  та что я ввел руками потом та - же а потом  другие две
36 nacinayu1c
 
16.07.11
22:38
но еще самое интересное что  когда я выбрал сотра  тогда не чего но когда я лев клавишей мыши по одному щелчку щелкаю все появляется
37 Обработка
 
16.07.11
22:44
(0) Поверь мне  я на зарплате собаку съел когда-то. Писал свой ЗИК... То что ты делаешь ребячество. Не стоит вводить сотра в несколько строк не важно для каких целей. И еще если реквизит вид работ текстовый то тоже пацанство.
Ну ежели хочешь реализовать свою идею то запрети вводить строки и делай это через кнопку. так для тебя будет лучше. одна кнопка по поразделению другая кнопка по сотру. Ну или в твоем случае обовляй форму.
38 nacinayu1c
 
16.07.11
22:46
ясно ок спасибо но еще одна кнопка меня не устраивает
39 Обработка
 
16.07.11
22:46
И еще при оборе итогов надо не забывать про клчи отбора  чтоб нулевые итоги не сели
40 Обработка
 
16.07.11
22:47
моешь пустить удаленно на свой комп ? может глянуть? Или выслать базу если не большая.
41 nacinayu1c
 
16.07.11
22:49
секу
43 nacinayu1c
 
16.07.11
22:51
чего не подрубаешься???
44 Сияющий Асинхраль
 
16.07.11
22:55
Ну кто? Кто это чудо подпустил к конфигуратору? Когда ему дело говорят, то не слушает, только и ждет когда ему напишут ту муть, которую он самолично придумал
45 Лефмихалыч
 
16.07.11
22:58
руки чешутся забанить из милосердия...
46 Обработка
 
16.07.11
23:19
(45) Нынче трудные времена у белорусов братьев надо помочь тем более так слезливо просит. Видел я базу по реализации все равно не гуд так что особливо не испртит ТС
47 nacinayu1c
 
16.07.11
23:26
Ну во первых у еще учусь  мне мой учитель дал задание  и объяснил каким он хочет его видеть в готовом виде а по коду я сам вы тоже когда то учились  
но ладно
спасибо всем  
я вас понимаю сам мож когда нить банить буду :)))
48 Сияющий Асинхраль
 
16.07.11
23:53
(46) трудные времена тут не причем. Он сегодня целый день здесь "совета просит" причем когда даже построчно показываешь так нельзя, так не делают, это лишнее, он благополучо пропускает все это мимо ушей, делая вид, что не для него сказано.
49 Обработка
 
17.07.11
00:04
(48) Понял. Я в начале сразу почувствовал  из какой категории человек. Просто жалобная просьба помочь меня смягчило и я вспомнил как я начинал. У меня хоть были помощники а он один жалко стало.
50 nacinayu1c
 
17.07.11
20:14
(49) спасибо за понимание
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.