|
v7: ПриОткрытии() как заставить 1с 7.7 сохранить изменения? | ☑ | ||
---|---|---|---|---|
0
Invzor
09.12.13
✎
14:17
|
Здравствуйте.
Можете подсказать... не пойму почему 1с 7.7 не сохраняет изменения... Есть справочник "договор", в нем есть предопределенныя процедура ПриОткрытии() ... там записана маленькая проверка... проверку проходит все в порядке... далее он заносит в справочник в реквизит определенное значение... - это тоже срабатывает... а вот нажимаешь на крестик закрыть договор.. он молча закрывает и не предлагает сохранить... а если что-то руками попытаться исправить.. то он уже предлагает сохранить.. когда закрываешь его... можно как-то это исправить? |
|||
1
1Сергей
09.12.13
✎
14:19
|
покажи код ПриОткрытии()
|
|||
2
Ёпрст
09.12.13
✎
14:20
|
Значение поди периодики, да ?
|
|||
3
Invzor
09.12.13
✎
14:21
|
периодические есть значения
|
|||
4
Invzor
09.12.13
✎
14:21
|
сейчас скину
|
|||
5
Invzor
09.12.13
✎
14:22
|
Процедура ПриОткрытии()
СпрИдентификаторов = создатьОбъект("Справочник.Идентификатор"); ТабОборудование.Очистить(); ТабОборудование.НоваяКолонка("Наименование",,,,,,,1); ТабОборудование.НоваяКолонка("Контрагент", "Справочники.Контрагенты",,,,15); ТабОборудование.НоваяКолонка("Адрес","Строка",50); ТабОборудование.НоваяКолонка("Договор", "Справочники.Договоры",,,,15); ТабОборудование.НоваяКолонка("Вид", "Справочники.ГазовоеОборудование",,,,15); ТабОборудование.НоваяКолонка("Количество", "Число",,,,6); ТабОборудование.НоваяКолонка("Цена", "Число",12,2,,6); ТабОборудование.НоваяКолонка("Сумма", "Число",12,2,,6); ТабОборудование.НоваяКолонка("НДС", "Число",12,2,,6); ТабОборудование.НоваяКолонка("Всего", "Число",12,2,,6); ТабОборудование.НоваяКолонка("К2", "Число",4,2,,6); ТабОборудование.НоваяКолонка("ДО", "Строка",,,"Дата обслуж.",3); ТабОборудование.ВидимостьКолонки("Наименование",0); ТабОборудование.ВидимостьКолонки("К2",0); Оборудование = СоздатьОбъект("Справочник.ГазовоеОборудование"); УчитыватьНДС = 0; Если ЭтапыРабот = 0 Тогда ЭтапыРабот = 1; КонецЕсли; ДатаТарифа = ДатаЗаключения; //Если ДатаПролонгации.Получить(ТекущаяДата()) > ДатаЗаключения Тогда // ДатаТарифа = ДатаПролонгации.Получить(ТекущаяДата()); //КонецЕсли; Если ВидДоговора.Выбран()=1 Тогда Если (ВидДоговора.Вид <> Перечисление.ВидДоговора.Тройственный) или (ПустоеЗначение(ДоговорКонтрагента) = 0) Тогда Оборудование.ИспользоватьВладельца(ТекущийЭлемент()); Оборудование.ВыбратьЭлементы(); Если ПустоеЗначение(ДоговорКонтрагента)=0 Тогда ДатаТарифа = ДоговорКонтрагента.ДатаЗаключения; //Если ДоговорКонтрагента.ДатаПролонгации.Получить(ТекущаяДата()) > ДоговорКонтрагента.ДатаЗаключения Тогда // ДатаТарифа = ДоговорКонтрагента.ДатаПролонгации.Получить(ТекущаяДата()); //КонецЕсли; КонецЕсли; Пока Оборудование.ПолучитьЭлемент()=1 Цикл Если Оборудование.ПометкаУдаления() = 0 Тогда ТабОборудование.НоваяСтрока(); ТабОборудование.Контрагент = Оборудование.Владелец.Владелец; ТабОборудование.Договор = Оборудование.Владелец; ТабОборудование.Вид = Оборудование.Вид; ТабОборудование.Количество = Оборудование.ВЭксплуатации; ТабОборудование.К2 = Оборудование.К2; ПорядокХраненияОтпускнойЦены = Оборудование.Вид.ПорядокХраненияОтпускнойЦены; Ставка = Оборудование.Вид.ПолучитьАтрибут("СтавкаНДС").Получить(ДатаЗаключения); Если ПустоеЗначение(ВариантРасчетаНалогов.СтавкаНДС) = 0 Тогда Ставка = ВариантРасчетаНалогов.СтавкаНДС; КонецЕсли; Количество = ТабОборудование.Количество; Если ПорядокХраненияОтпускнойЦены = 2 Тогда ТабОборудование.Цена = Оборудование.Вид.Цена.Получить(ДатаТарифа)*100/(100+Ставка.Ставка); ТабОборудование.Всего = Оборудование.Вид.Цена.Получить(ДатаТарифа)*Количество; ТабОборудование.НДС = ТабОборудование.Всего - ТабОборудование.Цена*Количество; ТабОборудование.Сумма = ТабОборудование.Всего - ТабОборудование.НДС; Иначе ТабОборудование.Цена = Оборудование.Вид.Цена.Получить(ДатаТарифа); ТабОборудование.Сумма = Количество * ТабОборудование.Цена; ТабОборудование.НДС = ТабОборудование.Сумма*Ставка.Ставка/100; ТабОборудование.Всего = ТабОборудование.Сумма + ТабОборудование.НДС; КонецЕсли; УчитыватьНДС = УчитыватьНДС + ТабОборудование.НДС; ТабОборудование.ДО = ""; Периодический = СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект("ДатаОбслуживания", Оборудование.ТекущийЭлемент()); Периодический.ВыбратьЗначения(ДатаЗаключения, ТекущаяДата()); Колво = 0; Пока Периодический.ПолучитьЗначение()=1 Цикл ТабОборудование.ДО = ТабОборудование.ДО + " " + Периодический.Значение; КонецЦикла; // ТабОборудование.ДО = Оборудование.ДатаОбслуживания.Получить(ТекущаяДата()); КонецЕсли; КонецЦикла; ТабОборудование.ВидимостьКолонки("Контрагент",0); Если ((ВидДоговора.Вид = Перечисление.ВидДоговора.СПГ) или (ВидДоговора.Вид = Перечисление.ВидДоговора.СВГО)) и (Владелец.ВидКонтрагента=Перечисление.ВидыКонтрагентов.Организация) Тогда СвернутьДоговор(); КонецЕсли; Иначе Если (ПустоеЗначение(ДоговорКонтрагента) = 1) Тогда Дог = ТекущийЭлемент(); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Оборудование=Справочник.ГазовоеОборудование.ТекущийЭлемент; |Владелец=Справочник.ГазовоеОборудование.Владелец.ДоговорКонтрагента.ТекущийЭлемент; |Условие(Владелец=Дог); |Обрабатывать НеПомеченныеНаУдаление; |Группировка Оборудование;"; Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда Пока Запрос.Группировка("Оборудование")=1 Цикл ТабОборудование.НоваяСтрока(); ТабОборудование.Контрагент = Запрос.Оборудование.Владелец.Владелец; ТабОборудование.Адрес = ТабОборудование.Контрагент.ЮридическийАдрес; ТабОборудование.Договор = Запрос.Оборудование.Владелец; ТабОборудование.Вид = Запрос.Оборудование.Вид; ТабОборудование.Количество = Запрос.Оборудование.ВЭксплуатации; ПорядокХраненияОтпускнойЦены = Запрос.Оборудование.Вид.ПорядокХраненияОтпускнойЦены; Ставка = Запрос.Оборудование.Вид.ПолучитьАтрибут("СтавкаНДС").Получить(ДатаЗаключения); Если ПустоеЗначение(ВариантРасчетаНалогов.СтавкаНДС) = 0 Тогда Ставка = ВариантРасчетаНалогов.СтавкаНДС; КонецЕсли; Количество = ТабОборудование.Количество; Если ПорядокХраненияОтпускнойЦены = 2 Тогда ТабОборудование.Цена = Запрос.Оборудование.Вид.Цена.Получить(ДатаТарифа)*100/(100+Ставка.Ставка); ТабОборудование.Всего = Запрос.Оборудование.Вид.Цена.Получить(ДатаТарифа)*Количество; ТабОборудование.НДС = ТабОборудование.Всего - ТабОборудование.Цена*Количество; ТабОборудование.Сумма = ТабОборудование.Всего - ТабОборудование.НДС; Иначе ТабОборудование.Цена = Запрос.Оборудование.Вид.Цена.Получить(ДатаТарифа); ТабОборудование.Сумма = Количество * ТабОборудование.Цена; ТабОборудование.НДС = ТабОборудование.Сумма*Ставка.Ставка/100; ТабОборудование.Всего = ТабОборудование.Сумма + ТабОборудование.НДС; КонецЕсли; УчитыватьНДС = УчитыватьНДС + ТабОборудование.НДС; ТабОборудование.ДО = ""; Периодический = СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект("ДатаОбслуживания", Оборудование.ТекущийЭлемент()); Периодический.ВыбратьЗначения(ДатаЗаключения, ТекущаяДата()); Колво = 0; Пока Периодический.ПолучитьЗначение()=1 Цикл ТабОборудование.ДО = ТабОборудование.ДО + " " + Периодический.Значение; КонецЦикла; // ТабОборудование.ДО = Запрос.Оборудование.ДатаОбслуживания.Получить(ТекущаяДата()); КонецЦикла; КонецЕсли; КонецЕсли; ТабОборудование.ВидимостьКолонки("Контрагент",1); КонецЕсли; ТабОборудование.Выгрузить(ТабКонтрагентов); ТабКонтрагентов.Свернуть("Контрагент, Договор, Адрес", ""); ТабКонтрагентов.Сортировать("+Адрес"); Если Группировать = 1 Тогда ТабОборудование.Свернуть("Вид,Цена","Количество,НДС,Сумма,Всего,ДО"); КонецЕсли; ТабОборудование.ВидимостьКолонки("Количество",1); ТабОборудование.ВидимостьКолонки("НДС",?(УчитыватьНДС>0,1,0)); ТабОборудование.ВидимостьКолонки("Договор",0); ТабОборудование.ВидимостьКолонки("Адрес",0); КонецЕсли; НазначениеВидимыхОбъектов(); //_____________________________________________________________________________ // доработка. штрихкод Сплошная идентификация договаора Если СокрЛП(Строка(ИдентификаторШтриха)) = "" тогда СпрИдентификаторов.Новый(); СпрИдентификаторов.Записать(); ИдентификаторШтриха = СпрИдентификаторов.ТекущийЭлемент(); СОобщить(ИдентификаторШтриха); Комментарий = "+штрих"; КонецЕсли; //_______________Конец Доработки Штрихкодов____________________________________ КонецПроцедуры // ПриОткрытии() |
|||
6
Invzor
09.12.13
✎
14:22
|
здесь только вот в этом куске вопрос:
Если СокрЛП(Строка(ИдентификаторШтриха)) = "" тогда СпрИдентификаторов.Новый(); СпрИдентификаторов.Записать(); ИдентификаторШтриха = СпрИдентификаторов.ТекущийЭлемент(); СОобщить(ИдентификаторШтриха); Комментарий = "+штрих"; КонецЕсли; //_______________Конец Доработки Штрихкодов____________________________________ КонецПроцедуры // ПриОткрытии() |
|||
7
Invzor
09.12.13
✎
14:23
|
Комментарий = "+штрих"; - вносит эти значения... но при закрытии не предлагает сохранять... просто закрывает и не сохраняет ессно
|
|||
8
Ёпрст
09.12.13
✎
14:25
|
Комментарий - это что ?
|
|||
9
Ёпрст
09.12.13
✎
14:25
|
поди просто реквизит формы, а не реквизит справочника, да ?
|
|||
10
Ёпрст
09.12.13
✎
14:25
|
:))
|
|||
11
Invzor
09.12.13
✎
14:25
|
нет
|
|||
12
Ёпрст
09.12.13
✎
14:26
|
(11) че нет ?
|
|||
13
Invzor
09.12.13
✎
14:26
|
ИдентификаторШтриха = СпрИдентификаторов.ТекущийЭлемент();
Идентификатор - реквизит и коммент реквизит... а не сохраняет ... |
|||
14
Ёпрст
09.12.13
✎
14:26
|
И где вас учат вот так писать ?
СокрЛП(Строка(ИдентификаторШтриха)) = "" |
|||
15
Ёпрст
09.12.13
✎
14:26
|
Еше раз, что такое Комментарий ?
Реквизит справочника, Реквизит формы ? |
|||
16
Invzor
09.12.13
✎
14:27
|
да это уже что только не пробывал потом...
|
|||
17
Invzor
09.12.13
✎
14:27
|
вот и налепил
|
|||
18
Ёпрст
09.12.13
✎
14:27
|
И еще.. присвоение новых значений надо писать во ВВодНового, а не в ПриОткрытии..
|
|||
19
Invzor
09.12.13
✎
14:29
|
мне при вводе не нужно...
|
|||
20
Ёпрст
09.12.13
✎
14:29
|
^))
|
|||
21
Invzor
09.12.13
✎
14:30
|
нужно что бы при открытии элемента справчника проверялся элемент и если условия подходят вносил в определенные реквизиты значения
|
|||
22
Ёпрст
09.12.13
✎
14:30
|
Как это не нужно ?
А потом чего, каждый раз будешь элемент открывать, чтоб быть уверенным, что твой реквизит заполнился/записался ? |
|||
23
Invzor
09.12.13
✎
14:30
|
значения вносятся... но не сохраняются...
|
|||
24
Ёпрст
09.12.13
✎
14:30
|
:)
|
|||
25
Ёпрст
09.12.13
✎
14:31
|
Еще раз, что есть Комментарий ?
Какой у него тип, периодический ли он, ежели это всё же реквизит справочника и т.д.. |
|||
26
Invzor
09.12.13
✎
14:32
|
непериодический реквизит справочника...
ИдентификаторШтриха - непереодический реквезит справочника тип СПРАВОЧНИК |
|||
27
Invzor
09.12.13
✎
14:32
|
комментарий - тип СТРОКА
|
|||
28
Злопчинский
09.12.13
✎
14:32
|
Ёпрст, может нам курсы открыть...? ;-) такие.. простенькие... с веником и лопатой.. учить людей отвечать на вопросы.. ;-0)
|
|||
29
Ёпрст
09.12.13
✎
14:33
|
(28) лучше курсы по поиску..
|
|||
30
Ёпрст
09.12.13
✎
14:34
|
(26)
Перем Комментарий; в коде есть ? |
|||
31
Ёпрст
09.12.13
✎
14:35
|
+ Это форма чего хоть ?
Форма Элемента/Списка Справочника ? |
|||
32
Ёпрст
09.12.13
✎
14:35
|
Что написано в ПриЗакрытии ?
+ ВК используешь ? типа turbomd. к примеру ? |
|||
33
Lazy Stranger
09.12.13
✎
14:36
|
на форме есть этот комментарий?
если нет - оно может не считать что данные модифицированы |
|||
34
Invzor
09.12.13
✎
14:36
|
Форма Элемента. В Перем Комментарий - нет в коде.... нужно объявлять, если работаешь в этом же справочнике?
|
|||
35
Invzor
09.12.13
✎
14:37
|
На форме есть этот "Комментарий" и "Идентификатор"
|
|||
36
Ёпрст
09.12.13
✎
14:38
|
(34) нет.
|
|||
37
Invzor
09.12.13
✎
14:39
|
при открытии он показывает на форме , что значения "идентификатор" и "коммент" внесены то что нужно.. но вот не предлагает сохранить и все
|
|||
38
КонецЦикла
09.12.13
✎
14:39
|
После просмотра (5) Епрст надо памятник поставить при жизни...
|
|||
39
Invzor
09.12.13
✎
14:41
|
(32) не использую. ПриЗакрытии нет в модуле
|
|||
40
Ёпрст
09.12.13
✎
14:42
|
(37) Ну воткни Форма.Обновить(1); в это условие, сразу после присвоения..
|
|||
41
Invzor
09.12.13
✎
14:43
|
сейчас попробую
|
|||
42
Ёпрст
09.12.13
✎
14:43
|
будет тебе вопрос.
А так, хз, надо пофигуратор открывать, мне лень.. я не меняю реквизиты из приОткрытии формы элемента - мот это фича такая, не устанавливать флаг модифицированности формы тама. |
|||
43
Invzor
09.12.13
✎
14:46
|
(40) спасибо! Помогло обновление формы! блин мелочь... а времени отняла...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |