Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Косяк при использовании ЗначениеИзФайла()

v7: Косяк при использовании ЗначениеИзФайла()
Я
   Sanario
 
05.09.16 - 12:30
Глюк какой-то непонятный. Сделал внешнюю обработку, понадобилось сохранять значение реквизита ТаблицаЗначений и если что - восстанавливать его. Прописал 2 процедуры на 2 кнопки.

Процедура Сохранить()
       ЗначениеВФайл("ВремТовар.txt",ТаблицаТоваров,);
КонецПроцедуры

Процедура Восстановить() 
    ЗначениеИзФайла("ВремТовар.txt",ТаблицаТоваров,);
КонецПроцедуры

Восстанавливает все кроме значения Единица, хз почему
 
 
   Ёпрст
 
1 - 05.09.16 - 12:31
в Еденица пихаешь не элементы справочника.
   Sanario
 
2 - 05.09.16 - 12:33
   Sanario
 
3 - 05.09.16 - 12:33
Ёпрст, привет. Не, там элементы справочника. Могу файлик скинуть с одной строчкой
   Ёпрст
 
4 - 05.09.16 - 12:34
(3) нет. Там значение с типом, а не ТекущийЭлемент()
   Sanario
 
5 - 05.09.16 - 12:34
{"ТаблицаЗначений","2",{"0","","0","0","0","","2",{{"Код","Код","1","0","0",{},"","0",{{"Строка","0-2031Б"}}},{"Номенклатура","Номенклатура","1","0","1",{"Справочник","Номенклатура","               "},"","0",{{"Справочник","Номенклатура","0-2031Б        "}}},{"Цена","Цена","1","15","2",{"Число","0"},"","2",{{"Число","     161.59"}}},{"ЦенаС","Цена со скидкой","1","15","3",{"Число","0"},"","2",{{"Число","     145.43"}}},{"Единица","Единица","1","10","4",{"Справочник","Единицы",""},"","2",{{"Справочник","Единицы",""}}},{"Количество","Количество","1","10","5",{"Число","0"},"","2",{{"Число","     15.000"}}},{"Контроль","Контроль кол-ва","1","10","6",{"Число","0"},"","2",{{"Число","     15.000"}}},{"Сумма","Сумма","1","15","7",{"Число","0"},"","2",{{"Число","    2423.85"}}},{"СуммаС","Сумма со скидкой","1","15","8",{"Число","0"},"","2",{{"Число","    2181.45"}}},{"СуммаСК","Сумма скидки","1","15","9",{"Число","0"},"","2",{{"Число","     242.40"}}},{"Валюта","Валюта","1","0","10",{"Справочник","Валюты","   "},"","0",{{"Справочник","Валюты","643"}}},{"Остаток_1","ООО """"","1","0","11",{"Число","0"},"","2",{{"Число","           0.000"}}},{"Остаток_2","ИП ","1","0","12",{"Число","0"},"","2",{{"Число","           3.000"}}}}}}
   Ёпрст
 
6 - 05.09.16 - 12:35
В таблице значения у тебя не ссылка на элемент.
   Sanario
 
7 - 05.09.16 - 12:35
Так, это значит в табличке хранится неправильно? А доки нормально проводятся
   Ёпрст
 
8 - 05.09.16 - 12:36
Покажи, как ты ТЗ слепил и из чего
   Sanario
 
9 - 05.09.16 - 12:37
Процедура ДобавитьНоменклатуру()
    ВыбНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
    Если ВыбНоменклатура.Выбрать("Выберите номенклатуру","ДляВыбора")=1 Тогда   
        НомСтр = 0;
        Если ТаблицаТоваров.НайтиЗначение(ВыбНоменклатура.ТекущийЭлемент().Код,НомСтр,"Код") = 1 Тогда
            Сообщить("Такой товар уже есть в таблице, откорректируйте количество руками!");
            ТаблицаТоваров.ПолучитьСтрокуПоНомеру(НомСтр); 
        Иначе
            ТаблицаТоваров.НоваяСтрока();
            ТаблицаТоваров.Номенклатура = ВыбНоменклатура.ТекущийЭлемент(); 
            ТаблицаТоваров.Валюта    = глРубли;
            РасчЦена                 = глПолучитьЦену(ТаблицаТоваров.Номенклатура, ТипЦенВПодборе, ВыбДата, ТаблицаТоваров.Единица , глРубли, 1);
            ТаблицаТоваров.Код       = ВыбНоменклатура.Код;
            ТаблицаТоваров.Единица   = ВыбНоменклатура.БазоваяЕдиница;  
            ТекСтр = ТаблицаТоваров.КоличествоСтрок();
            ТекКол = ТаблицаТоваров.ТекущаяКолонка();
            КоличествоТовара = ТаблицаТоваров.Количество;
            ТаблицаТоваров.ПолучитьСтрокуПоНомеру(ТекСтр);
            ТекКол = "Количество";
            Если ТекКол = "Количество" Тогда
                ВвестиЧисло(КоличествоТовара, "Введите количество товара",15,3,);
                ТаблицаТоваров.УстановитьЗначение(ТекСтр,ТекКол,КоличествоТовара);
                РасчЦена               = глПолучитьЦену(ТаблицаТоваров.Номенклатура, ТипЦенВПодборе, ВыбДата, ТаблицаТоваров.Единица , глРубли, 1);
                ТаблицаТоваров.ЦенаС   = Окр(РасчЦена - РасчЦена * СкидкаВДокументе.Процент/100,2);
                ТаблицаТоваров.Цена    = РасчЦена;
                ТаблицаТоваров.СуммаС  = Окр(ТаблицаТоваров.Количество*ТаблицаТоваров.ЦенаС,2); 
                ТаблицаТоваров.Сумма   = Окр(ТаблицаТоваров.Количество*ТаблицаТоваров.Цена,2);
                ТаблицаТоваров.СуммаСК = ТаблицаТоваров.Сумма - ТаблицаТоваров.СуммаС;
            КонецЕсли;
            ТаблицаТоваров.УстановитьЗначение(ТекСтр,"Контроль",КоличествоТовара);
            ПосчитатьОстаток(); 
        КонецЕсли;
    КонецЕсли;    
КонецПроцедуры
   Ёпрст
 
10 - 05.09.16 - 12:38
(9) Изначально, ТЗ как создана ?
Какой тип у колонки Единица ?
 
 Рекламное место пустует
   Ёпрст
 
11 - 05.09.16 - 12:38
у тебя и так видно, что в ТЗ - пусто
   Ёпрст
 
12 - 05.09.16 - 12:38
нет ид элемента
   Sanario
 
13 - 05.09.16 - 12:39
ТаблицаТоваров.НоваяКолонка("Единица",     "Справочник.Единицы",,        ,"Единица",    10,,2);
   Sanario
 
14 - 05.09.16 - 12:39
Вот так создавал
   Ёпрст
 
15 - 05.09.16 - 12:39
(13)
ВыбНоменклатура.БазоваяЕдиница - какой тип реквизита в справочнике Номенклатура?
   Sanario
 
16 - 05.09.16 - 12:40
Ссылка на справочник Единицы. Это ТС9.2
   Ёпрст
 
17 - 05.09.16 - 12:43
(16) убери тип в НоваяКолонка, и проверь перед ЗначениеВФайл, что есть в твоей ТЗ, есть ли там вообще Единица твоя. И чем заполнена
   Sanario
 
18 - 05.09.16 - 12:47
Убрал. Вот что при просмотре:
http://i84.fastpic.ru/big/2016/0905/d1/a84a83153273423dae5c6856dceadad1.png
   Sanario
 
19 - 05.09.16 - 12:54
Как бы есть, вот почему и удивляюсь, где мог чего упустить :(
   Ёпрст
 
20 - 05.09.16 - 13:17
(18) и ? Сохранять стало ?
   Sanario
 
21 - 05.09.16 - 13:19
Нет, не стало:(
   Sanario
 
22 - 05.09.16 - 13:26
ТаблицаТоваров.НоваяКолонка("Код");
    ТаблицаТоваров.НоваяКолонка("Номенклатура","Справочник.Номенклатура",, ,  "Номенклатура",,,); 
    ТаблицаТоваров.НоваяКолонка("Цена",        "Число"                  ,10,2,"Цена",      15,,);
    ТаблицаТоваров.НоваяКолонка("ЦенаС",       "Число"                  ,10,2,"Цена со скидкой",15,,);
    ТаблицаТоваров.НоваяКолонка("Единица",     ,,        ,"Единица",    10,,2); 
    //ТаблицаТоваров.НоваяКолонка("Единица",     "Справочник.Единицы",,        ,"Единица",    10,,2); 

    ТаблицаТоваров.НоваяКолонка("Количество",  "Число"                  ,10,3,"Количество",10,,);
    ТаблицаТоваров.НоваяКолонка("Контроль",    "Число"                  ,10,3,"Контроль кол-ва",10,,);
    ТаблицаТоваров.НоваяКолонка("Сумма",       "Число"                  ,10,2,"Сумма",     15,,);
    ТаблицаТоваров.НоваяКолонка("СуммаС",      "Число"                  ,10,2,"Сумма со скидкой",15,,);
    ТаблицаТоваров.НоваяКолонка("СуммаСК",     "Число"                  ,10,2,"Сумма скидки",15,,);
    ТаблицаТоваров.НоваяКолонка("Валюта",      "Справочник.Валюты"       ,,  ,"Валюта"        ,,,);


Вот при открытии формируются колонки таблицы значений.
Набрал сюда товар, нахал сохранить в файл.
очистил таблицу
Нажал восстановить из файла

При этом единица назад не возвращается
   youalex
 
23 - 05.09.16 - 13:28
А если запятую убрать в вызове ЗначениеВФайл() ?
   Sanario
 
24 - 05.09.16 - 13:29
Так там параметр передается, чего в файл загонять. Без него ругается)
   Sanario
 
25 - 05.09.16 - 13:30
ЗначениеВФайл(<?>,,);
Синтаксис:
ЗначениеВФайл(<ИмяФайла>,<Объект>,<Формат>)
Назначение:
Сохраняет значение объекта в файле.
Возвращает: 1 - функция выполнена успешно; 0 - функция не выполнена.
Параметры:
<ИмяФайла> - имя файла.
<Объект> - значение, которое следует сохранить в файле.
<Формат> - необязательный параметр. Число: 1 - сохранение во внутреннем формате; иначе во внешнем. Значение по умолчанию: 1.
   Sanario
 
26 - 05.09.16 - 13:31
О блин... Алекс, мерси. без запятой заработало)))
   youalex
 
27 - 05.09.16 - 13:31
(24) у меня - не ругается.
Ну попробуй явно указать 1 тогда (последний параметр)
   Sanario
 
28 - 05.09.16 - 13:31
Вот только интересно, а почему не работало?:)
   youalex
 
29 - 05.09.16 - 13:32
(26) о сколько нам открытий чудных..))
Имхается, что оно пустой параметр воспринимало как 0
   Sanario
 
30 - 05.09.16 - 13:34
Во мля... :)))) 
Как в том анекдоте про бензопилу)))
   Sanario
 
31 - 05.09.16 - 13:34
Парни, огромное спасибо)
   Ёпрст
 
32 - 05.09.16 - 13:34
(28) Это как ЗначениеВСтроку и ЗначениеВСтрокуВнутр, в первом  - летит код элемента, во втором - ид элемента. У тебя у Единиц, кода нет.
   Sanario
 
33 - 05.09.16 - 13:36
Да уж... Сколько лет живешь, столько и учись...
 
 


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует