Имя: Пароль:
1C
 
Помогите новичку!
↓ (Волшебник 06.11.2017 14:39)
0 oleg-vdgbu
 
18.02.11
09:07
В примере из книги радченко:
СтрокаТабЧасти = Элементы.ПроданнМатериалы.Текущие данные;
СтрокаТабЧасти.Сумма =СтрокаТабЧасти.Количество * СтрокаТабЧасти.Цена;
где ПроданнМатериалы - таб-ца в справочнике, Сумма, цена - столбцы в ней.
Вопросы:
1. набираю во второй строчке "СтрокаТабЧасти." и появляется подсказка, но она непонятно к чему относится?
2. Если строка не просто реквизит таблицы типа "Число", а СправочникСсылка на другой справочник "Прайсы", где как раз и располагается требуемый реквизит "Цена"
Тогда как записать это выражение? Я как не пробую получаю ошибки...
1 chelentano
 
18.02.11
09:09
(0) чо?
2 Wobland
 
18.02.11
09:11
(0) не понял. цену в справочнике Прайсы хранишь? напрасно
3 Alexion124
 
18.02.11
09:12
непонел..
4 oleg-vdgbu
 
18.02.11
09:17
В колонке "Цена" не число, а ссылка на другой справочник, где один из реквизитов как раз "цена" и есть?
Как это по другому-то сказать?
5 kosts
 
18.02.11
09:20
(4) Тогда

СтрокаТабЧасти.Сумма =СтрокаТабЧасти.Количество * СтрокаТабЧасти.Цена.ЦенаПродажи;
6 МойКодУныл
 
18.02.11
09:21
Мозг затрещал, но выдержал.

У тебя тип колонки Цена СправочникСсылка.Прайс, а у справочника Прайс есть реквизит Цена, так?

Тогда твоя строка должна быть СтрокаТабЧасти.Цена.Цена - мьсе знает толк в извращениях. Не забудь проверить СтрокаТабЧасти.Цена на заполненность=)
7 МойКодУныл
 
18.02.11
09:24
(0) А какое отношение ты имеешь к ВДГБ, который франч?
8 oleg-vdgbu
 
18.02.11
09:29
"к ВДГБ, который франч", отношения не имею.
ФГУ Волго-Донское ГБУВПиС, бухгалтерия, программист. Были на 7.7 заставляют переходить на 8.х. Но надеются, что бюджетку 7.7 все же переведут на новые рельсы. Поэтому на курсы не отправляют. Учу по самоучителям.
9 chelentano
 
18.02.11
09:30
(8) самоучитель - это mista что ли?
10 МойКодУныл
 
18.02.11
09:32
(8) Ок. Тогда не зря помог), если помог.
11 oleg-vdgbu
 
18.02.11
10:12
СтрокаТабЧасти.Сумма =СтрокаТабЧасти.Количество * СтрокаТабЧасти.Цена.ЦенаПродажи;

пишет "Поле объекта не обнаружено "ЦенаПродажи"
12 chelentano
 
18.02.11
10:14
(11) видимо, поле объекта не обнаружено "ЦенаПродажи"...
13 kosts
 
18.02.11
10:16
(11) :-)))

ЦенаПродажи замени на свой реквизит
14 chelentano
 
18.02.11
10:17
(13) СтрокаТабЧасти.Сумма =СтрокаТабЧасти.Количество * СтрокаТабЧасти.Цена.СвойРеквизит;

пишет "Поле объекта не обнаружено "СвойРеквизит"<
15 oleg-vdgbu
 
18.02.11
10:36
мой реквизит "Цена" имеет тип СправочникСсылка на справочник Прайсы, у которого и есть нужный рекизит ЦенаПродажи.
Вот про него 1С и говорит, что это поле ("ЦенаПродажи ") не обнаружено.
16 Спящая
 
18.02.11
10:52
(8) бюджетники значит ? поздравляю коллега. нас бюджетников не много тут, но мы есть.
17 Спящая
 
18.02.11
10:53
(15) я бы все таки по перву из ссылки получила объект
методом ПолучитОбъект() а потом уже работала с реквизитами этого объекта
18 oleg-vdgbu
 
18.02.11
10:54
Я очень рад, может кто-то всё же поможет?
19 dva1c
 
18.02.11
10:55
(17)+1
20 oleg-vdgbu
 
18.02.11
10:55
А примерным текстом можно? Пожалуйста?
21 dva1c
 
18.02.11
10:56
(20) надо писать утвердительно: "Пожалуйста!"
22 Спящая
 
18.02.11
10:56
ОбъектПрайс = Цена.ПолучитьОбъект()
а потом
ОбъектПрайс.СвойРеквизит
кажется так
23 Darklight
 
18.02.11
11:14
Смотрю на это и чисто конктетно спозаю под стол...
но при этом реально хочу помочь - но не понимаю как ;)
Давайте попробуем разборать что у тебя там написано:

СтрокаТабЧасти = Элементы.ПроданнМатериалы.ТекущиеДанные;
Здесь идёт образение к объекты СправочникСписок если это доукменты, то это ничего не меняет) для получения текущих данных, выведенных в этом объекте и выбранных в качестве текущей строки. Но состав выведенных реквизитов в этой строке может быть любым, поэтому для получения всех реквизитов этого справочника лучше обращаться к нему через Ссылку - будет что-то типа этого:
ЭлементСправочникаПроданныеМатериалы = Элементы.ПроданнМатериалы.ТекущиеДанные.Ссылка;
Далее японимаю, что реквизит "Цена" этого элемента - это ссылка на друго справочник - ок - давайте получим его в отдельной переменной
ЭлементСправочникаПрайс = ЭлементСправочникаПроданныеМатериалы.Цена;
Далее, нам нужно получить сумму, я понимаю, что у элементов справочника "Прайс" есть некий реквизит (имя его мне не известно), в котором находится цена - пусть он будет называться "Цена" - Тогда й можно получить так
Цена = ЭлементСправочникаПрайс.Цена
Количество берётся из первого справочника - из его реквизита "Количество" - получаем
Количество = ЭлементСправочникаПроданныеМатериалы.Количество;
Ну и сумму получаем так
Сумма = Количество*Цена;
Или всё в одну строку
Сумма = Элементы.ПроданнМатериалы.ТекущиеДанные.Ссылка.Цена.Цена*Элементы.ПроданнМатериалы.ТекущиеДанные.Ссылка.Количество;
Вот и всё.
Но это я не понял - есть ли здесь действительно табличные части или их нет. Вышеописаный код не обращается к табличным частям.
24 oleg-vdgbu
 
18.02.11
11:26
СтрокаТабЧасти = Элементы.ПроданнМатериалы.Текущие данные;
 ОбъектИгра = СтрокаТабЧасти.Цена.ПолучитьОбъект();
>> Метод объекта не обнаружен (ПолучитьОбъект)
25 Evgenchik
 
18.02.11
11:27
СтрокаТабЧасти.Цена - какой тип значения?
26 Darklight
 
18.02.11
11:35
Напиши вот так
сообщить(ТипЗнч(СтрокаТабЧасти.Цена));
ОбъектИгра = СтрокаТабЧасти.Цена.ПолучитьОбъект();
и скажи что будет выведено в окне служебных сообщений
27 oleg-vdgbu
 
18.02.11
11:42
Ок! Сформулирую заново:
Есть справочник "Прайс". В нем есть реквизит НЕ табличной части "ЦенаПродажи".
Есть справочник "ПроданнМатериалы", где в табличной части есть  реквизиты:
сумма, количество - число;
и "Цена" - эти СправочникСсылка.Прайс

как мне получить для конкретной строки в "ПроданнМатериалы"
получить сумма = количество * Цена
???
28 Evgenchik
 
18.02.11
11:47
если у тебя и "Цена" - это СправочникСсылка.Прайс и есть реквизит НЕ табличной части "ЦенаПродажи", то должно получится
СтрокаТабЧасти.Количество * СтрокаТабЧасти.Цена.ЦенаПродажи;
29 oleg-vdgbu
 
18.02.11
11:47
строка
сообщить(ТипЗнч(СтрокаТабЧасти.Цена));
выдает сообщение "Прайс"
30 Evgenchik
 
18.02.11
11:49
а должно быть СправочникСсылка.Прайс
31 oleg-vdgbu
 
18.02.11
11:53
(28)
СтрокаТабЧасти.Сумма=СтрокаТабЧасти.Количество * СтрокаТабЧасти.Цена.ЦенаПродажи;
Поле объекта не обнаружено (ЦенаПродажи)
32 Darklight
 
18.02.11
11:53
(27) "для конкретной строки" строки чего - элемента справочника "ПроданнМатериалы" или строки элемента табличной части справочника "ПроданнМатериалы" (кстати как называется эта табличная часть)?
33 Darklight
 
18.02.11
11:55
(29) - не понял - так и пишет - всего одно слово "Прайс"? так не бывает ;)
34 oleg-vdgbu
 
18.02.11
12:00
(32)
1. строки элемента табличной части справочника "ПроданнМатериалы"
2. В примере из книги радченко:
СтрокаТабЧасти = Элементы.ПроданнМатериалы.Текущие данные;
в примере у Радченко же название табличной не упоминается?
35 oleg-vdgbu
 
18.02.11
12:02
(33)
пишет просто "Прайс"
(30)
"а должно быть СправочникСсылка.Прайс"
И как этого добиться?
36 Evgenchik
 
18.02.11
12:04
по моему "ПроданнМатериалы" - это и есть табличная часть
37 kosts
 
18.02.11
12:18
Как успехи, переживаю...
38 Evgenchik
 
18.02.11
12:31
я столько не осилю..
автор, ты где там?
39 oleg-vdgbu
 
18.02.11
12:45
(36) Sorry!
"ПроданнМатериалы" - это табличная часть
40 Darklight
 
18.02.11
12:52
(35)(39) я уже пол под столом начал продавливать - спользать уже некуда...
41 Evgenchik
 
18.02.11
12:53
дальше то что?
42 Спящая
 
18.02.11
12:58
(39) прикольно
43 oleg-vdgbu
 
18.02.11
13:13
Да после 7.7 плакать хочется. Тем более, что и там писал по мелочи, большую часть конфигурации дописывала под нашу организацию франчайзачка. А сейчас сказали из стандартной будем сами получать "путем обработки напильником" похожую, только под 8.
И хотя (40 и 42 может и верно выражаются), но
ведь ни один совет так и не сработал???
44 oleg-vdgbu
 
18.02.11
13:19
А текст напрямую взят из М.Г.Радченко, Е..Ю. Хрусталева 1С: ПРЕДПРИЯТИЕ 8.2 Практическое пособие разработчика.
И пока цена была из той же табличной части процедура ПриИзменении() замечательно считала Сумму.
45 Darklight
 
18.02.11
13:33
Тут будет трудно дать своет - пока не будет точно сформулированы все исходные данные (структура, типы, место применения) и поставлена конкретная цель - что хочется получить.
46 Darklight
 
18.02.11
13:35
(35)  а что будет выведено если напсиать вот так:
сообщить(ТипЗнч(Ссылка)+" - "+ТипЗнч(СтрокаТабЧасти));
47 Darklight
 
18.02.11
13:35
(46)пардон, опечатался, надо вот так
сообщить(""+ТипЗнч(Ссылка)+" - "+ТипЗнч(СтрокаТабЧасти));
48 oleg-vdgbu
 
18.02.11
13:46
(45) за исключение того, "ПроданнМатериалы" - это таличная чать в справочнике "Услуги" (27)-ой пункт по моему в вольном стиле исчерпывает описание и ТЗ.
Могу уточнить, все что скажите или выложить куда-то для примера конфигурацию. Но она учебная - в ней, кроме описанного и нет ничего.
(47) Проверка синтаксиса пишет: Переменная не определена (Ссылка)
49 chelentano
 
18.02.11
13:49
(43) "после 7.7 плакать хочется" - вот не надо тут... значит и в 77 ты нифига не соображал
50 Evgenchik
 
18.02.11
13:51
выложи куда нить, и дай ссылку - я бы посмотрел
51 Evgenchik
 
18.02.11
13:53
(49) "Тем более, что и там писал по мелочи, большую часть конфигурации дописывала под нашу организацию франчайзачка"
52 Evgenchik
 
18.02.11
13:58
опиши, что ты там в интерфесе нарисовал
53 chelentano
 
18.02.11
13:58
(51) если ТС мог написать что-то подобное в 77, то и здесь бы это трудностей не составило
54 oleg-vdgbu
 
18.02.11
13:59
(50)
http://narod.ru/disk/5884325001/1С8пробная.zip.html
Буду очень благодарен.
55 oleg-vdgbu
 
18.02.11
14:05
(51) Вот именно, что по мелочи. Я и не скрываю, что изучаю 1С считай, что с нуля.
Но очень хотел бы теперь разобраться досконально. А в книгах не все понятно и многое опущено. Писали для уровня chelentano сами chelentano/
56 Evgenchik
 
18.02.11
14:12
у товарища 8.2
Элементы.ПроданнМатериалы - это таблица формы
57 ildary
 
18.02.11
14:16
Пользуясь случаем задам вопрос опытным восьмерочникам - где можно найти инфу по начальной подстройке конфигуратора под себя? Я встречал как-то подобную страницу с советами и готовыми рецептами на ...арте, но посеял ссылку, а поиском потом не нашел (может ее и потерли).
58 Evgenchik
 
18.02.11
14:18
на клиенте не может быть объектов, потому и не получается выцепить цену
59 Evgenchik
 
18.02.11
14:22
наверно как то так

&НаСервере
Функция ПолучитьЦену(СсылкаПрайс)
   ОбъектЦена = СсылкаПрайс.ПолучитьОбъект();
   Цена = ОбъектЦена.ЦенаПродажи;
   Возврат Цена;
КонецФункции

&НаКлиенте
Процедура ПроданнМатериалыколичествоПриИзменении(Элемент)
   СтрокаТабЧасти = Элементы.ПроданнМатериалы.ТекущиеДанные;
   ЦенаИзПрайса = ПолучитьЦену(СтрокаТабЧасти.Цена);
   СтрокаТабЧасти.Сумма =СтрокаТабЧасти.Количество * ЦенаИзПрайса;
КонецПроцедуры
60 Evgenchik
 
18.02.11
14:22
сильно не ругайте, я 82 еще не знаю :)
61 kosts
 
18.02.11
14:31
(59) Разве нужно получить объект, что по ссылке не вернет Цену продажи?

Так не работает что ли?

Функция ПолучитьЦену(СсылкаПрайс)

   Возврат СсылкаПрайс.ЦенаПродажи;

КонецФункции
62 Evgenchik
 
18.02.11
14:33
(61) ага, работает. что-то тут все об объекте говорили - вот и зациклился на него
63 oleg-vdgbu
 
18.02.11
14:40
Евгений, большое спасибо!
Скажите, я правильно понял, если какая процедура целиком выполняется &НаСервере, то этих кунштюков по искусственному разделению процедуры на части делать уже не нужно?
Только если какая-то обработка выполняется на стороне клиента?
Может кто подскажет, что обязательно выполняется на стороне клиента?
64 oleg-vdgbu
 
18.02.11
14:44
(61) Но все равно "&НаСервере" ? или не обязательно?
65 Evgenchik
 
18.02.11
14:44
а фиг знает, я про это разделение еще не читал :(
66 Evgenchik
 
18.02.11
14:46
(64)
Тип: СправочникОбъект.
Описание:

Получает по ссылке объект, предназначенный для чтения, изменения, добавления и удаления справочника.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Сам объект со всеми реквизитами находится на сервере, там что обязательно получение цены на сервере.
67 oleg-vdgbu
 
18.02.11
14:56
(64)
Понял.
Не понял только, почему если запихнуть (59) под гриф "&НаКлиенте", то пишет:
Функция <<?>>ПолучитьЦену(СсылкаПрайс) (Проверка: Тонкий клиент)
68 oleg-vdgbu
 
18.02.11
14:57
(67) Пардон.
Процедура или функция с указанным именем уже определена (ПолучитьЦену)
Функция <<?>>ПолучитьЦену(СсылкаПрайс) (Проверка: Тонкий клиент)