Имя: Пароль:
1C
1C 7.7
v7: Записать документ
0 НикДляЗапросов
 
04.10.12
21:08
Значение реквизита "Выдал" не сохраняется, почему?
Процедура ПриЗаписи()
   //Попытка
       Док = СоздатьОбъект("Документ.ТранспортнаяНакладная");
       ВыбратьСтроки();
       Пока ПолучитьСтроку() = 1 Цикл
           Если Док.НайтиПоНомеру(НомерТРН,ДатаДокТТН) = 1 Тогда
               Если Выдал = Перечисление.БиОт.Да Тогда
                   Док.Выдал = Перечисление.БиОт.Да;
                   Док.Записать();
               Иначе
                   Док.Выдал = Перечисление.БиОт.Нет;
                   Док.Записать();
               КонецЕсли;
           Иначе
               сообщить("Наладная не найдена");
           КонецЕсли;            
       КонецЦикла;
       
   //Исключение
   //    Сообщить("Накладные не закрлись, т.к. есть открытые пользователями!!!");
   //КонецПопытки
КонецПроцедуры
1 ЧашкаЧая
 
04.10.12
21:10
Если Док.НайтиПоНомеру(НомерТРН,ДатаДокТТН) = 1 Тогда
               ТекущийДокумент = Док.ТекущийДокумент();
               Если Выдал = Перечисление.БиОт.Да Тогда
                   ТекущийДокумент.Выдал = Перечисление.БиОт.Да;
                   ТекущийДокумент.Записать();
               Иначе
                   ТекущийДокумент.Выдал = Перечисление.БиОт.Нет;
                   ТекущийДокумент.Записать();
               КонецЕсли;
           Иначе
               сообщить("Наладная не найдена");
           КонецЕсли;
2 НикДляЗапросов
 
04.10.12
21:16
Ну спасибо конечно, и все правильно говоришь, но
ТекущийДокумент.Записать();
{Документ.Ведомость.Форма.Модуль(268)}: Не выбран документ!
3 НикДляЗапросов
 
04.10.12
21:17
Хотя
ТекущийДокумент = Транспортная накладная 1 (02.04.12)
4 ЧашкаЧая
 
04.10.12
21:21
Ну тогда, костылями, ее, костылями!

           ТекущийДокумент = СоздатьОбъект("Документ.ТранспортнаяНакладная");

           Если Док.НайтиПоНомеру(НомерТРН,ДатаДокТТН) = 1 Тогда
               ТекущийДокумент.НайтиДокумент(Док.ТекущийДокумент());

               Если Выдал = Перечисление.БиОт.Да Тогда
                   ТекущийДокумент.Выдал = Перечисление.БиОт.Да;
                   ТекущийДокумент.Записать();
               Иначе
                   ТекущийДокумент.Выдал = Перечисление.БиОт.Нет;
                   ТекущийДокумент.Записать();
               КонецЕсли;
           Иначе
               сообщить("Наладная не найдена");
           КонецЕсли;
5 НикДляЗапросов
 
04.10.12
21:22
))
6 miki
 
04.10.12
21:25
А зачем условие на значение <Выдал>? Почему просто нельзя написать:
Док.Выдал = Выдал
?
Или для Перечисления БиОт есть вариант "БиОт.МожетБыть"?
7 ЧашкаЧая
 
04.10.12
21:27
(6) Потому что в клюшках нет типа булево. Да и сокращенного вычисления логических выражений тоже нет, но это так к слову.
8 НикДляЗапросов
 
04.10.12
21:28
(6) Да, ты прав, я просто кусок кода переписывал там изначально были разные типы

Он блин даже с костылями не работает
9 m-serg74
 
04.10.12
21:31
(8) в ПриЗаписи - Записать? надеюсь Док сам себя записывает)
10 НикДляЗапросов
 
04.10.12
21:32
Да это рахзные документы, один другой пишет
11 НикДляЗапросов
 
04.10.12
21:33
В при записи не могут писаться другие документы?
12 m-serg74
 
04.10.12
21:35
если разные то могут
13 НикДляЗапросов
 
04.10.12
21:36
Ну разные они разные
14 m-serg74
 
04.10.12
21:37
НайтиПоНомеру(<Номер>,<Дата>,<ИдентВида>)

а есть выбрать по номеру мож не то используешь СП погляди
15 НикДляЗапросов
 
04.10.12
21:43
Ладно, потом вспомню, всем спасибо
16 Злопчинский
 
04.10.12
21:44
а вот этот мегакод
.
Если Выдал = Перечисление.БиОт.Да Тогда
                   ТекущийДокумент.Выдал = Перечисление.БиОт.Да;
                   ТекущийДокумент.Записать();
               Иначе
                   ТекущийДокумент.Выдал = Перечисление.БиОт.Нет;
                   ТекущийДокумент.Записать();
               КонецЕсли;
.
нельзя заменить
.
ТекущийДокумент.Выдал = Выдал;
ТекущийДокумент.Записать();
.
???
17 НикДляЗапросов
 
04.10.12
21:47
Здесь вопросы задаю я, и вообще я домой поехал, так что сами отлаживайте
18 НикДляЗапросов
 
04.10.12
21:47
)) Ш