Имя: Пароль:
1C
1С v8
Подскажите код ребят
, ,
0 Денисок
 
19.03.12
23:31
Если делать запись работает, а если проведение виснет и выкидывает через время, укажите на ошибку пожалуйста.
Код находится в Модуле Объекта Документа Поступление Товаров и Услуг, замысел, что бы документ мог менять цену в других документах поступления цену и сумму где присутствовала такая же номенклатура.
   
ЗапросТовараПартии = новый запрос;
   ЗапросТовараПартии.Текст = "
|ВЫБРАТЬ
|*
|ИЗ
|Документ.ПоступлениеТоваровУслуг.Товары
|Где
|Номенклатура = &Номенклатура";
ЗапросТовараПартии.УстановитьПараметр("Номенклатура",ТекСтрокаТовары.Номенклатура);
ВыполнитьЗапрос = ЗапросТовараПартии.Выполнить();
ТаблицаЗапроса = ВыполнитьЗапрос.Выгрузить();
Для Каждого ТекСтрокаТаблицаЗапроса из ТаблицаЗапроса Цикл
   Док = ТекСтрокаТаблицаЗапроса.Ссылка;
   Документ = Док.ПолучитьОбъект();
   ТоварыТаб = Документ.Товары;
   Для каждого ТекСтрокаТоварыТаб из ТоварыТаб Цикл
   Если ТекСтрокаТоварыТаб.Номенклатура = ТекСтрокаТовары.Номенклатура тогда
       ТекСтрокаТоварыТаб.Цена = ТекСтрокаТовары.Цена;//Это из общего кода ТекСТрокаТовары.Цена к примеру равен 150 руб.
       ТекСтрокаТоварыТаб.Сумма = ТекСтрокаТоварыТаб.Цена * ТекСтрокаТоварыТаб.Количество;
   КонецЕсли;
КонецЦикла;
Документ.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
1 mikecool
 
19.03.12
23:32
не делай так
2 mikecool
 
19.03.12
23:33
+1 это код Чака Нориса или я нифига не понимаю
3 БибиГон
 
19.03.12
23:33
(1) +100 делай, но не при проведении. делай по другому.
4 Денисок
 
19.03.12
23:34
Да я знаю, что это дурдом, по другому пока не умею...почему не проводит?
5 mikecool
 
19.03.12
23:35
я бы тоже охренел, при проведении поменять центы в 100500 документах
6 le_
 
19.03.12
23:35
Песца намотало на ось проведения.
7 Денисок
 
19.03.12
23:47
Ну что, безнадега тут? Скажите, как провести правильно.
8 jsmith
 
19.03.12
23:48
код ребят денисок какие-то странные окончания
9 catena
 
19.03.12
23:55
А почему документ получается внутри цикла, а проводится вне его?
10 ale-sarin
 
19.03.12
23:57
Денисок, посмотрел другие твои темы.
Совет, или 1С изучай - поле непаханное, тем более за 5месяцев можно было и лучше написать.
Или фильмы смотри.

А в (0) очень даже плохо.
11 Денисок
 
19.03.12
23:59
(10) убей меня теперь...помоги лучше...
(9) в цикле вроде?
12 le_
 
20.03.12
00:01
В запросе можно выбрать только номер строки ТЧ (чтобы не перебирать ТЧ каждый раз) и ссылку на документ. Но, всё равно, сама идея - зло.
Всё это надо убирать из обработок записи и проведения документа.
13 Денисок
 
20.03.12
00:01
Я толком не программировал ни когда...вот только сейчас начинаю.
14 Денисок
 
20.03.12
00:02
(12) А куда деть? Кстати это в УТ10.3
15 le_
 
20.03.12
00:02
Представь, если документов, в которых есть эта номенклатура - 10 000.
В итоге один документ у тебя будет проводиться минимум пол часа.
Что в это время будет со всеми пользователями и с базой?
16 ale-sarin
 
20.03.12
00:04
(13) Никогда не поздно начать, но сначала надо поискать-подумать, а потом, если не получится, задавать вопросы. Т.е. надо смотреть, как подобные (не именно такие, а подобные) вещи делаются в типовых.
17 Денисок
 
20.03.12
00:04
(15) я думал об этом...но больше ни чего не придумал, мне нужно что бы в регистре ПартииТоваровНаСкладах была переоценка по последней цене поступления. Думал что через регистратор лучше всего делать..
18 Kuzen
 
20.03.12
00:04
что за документы здесь будут ?

Док = ТекСтрокаТаблицаЗапроса.Ссылка;
19 БибиГон
 
20.03.12
00:06
/что бы в регистре ПартииТоваровНаСкладах была переоценка по последней цене поступления.

за весь период ведения учета в базе? ;)
20 Денисок
 
20.03.12
00:06
В отладчике если смотреть , то документ поступления товаров и услуг текущий
21 Денисок
 
20.03.12
00:06
(19) Да, все партии
22 ale-sarin
 
20.03.12
00:07
(17) Это ты типа "среднюю" выводишь?
23 ale-sarin
 
20.03.12
00:07
+(17) Хотя, нет.
24 ale-sarin
 
20.03.12
00:08
+(17) А зачем это?
25 Денисок
 
20.03.12
00:09
(23)Средняя нет, но позже будет дельта переоценки в отчет
26 catena
 
20.03.12
00:09
действительно, в цикле, кривое форматирование меня сбило.
А зачем менять всю историю цены? Поступления могут быть очень старыми ведь....
27 Денисок
 
20.03.12
00:09
И нужно что бы товары списывались по последней цене поступления.
28 le_
 
20.03.12
00:10
(27) Для этого вовсе не обязательно колбасить все документы.
29 Денисок
 
20.03.12
00:10
Парни почему запись работает, а проведение зависает?
30 Денисок
 
20.03.12
00:11
(28) а как же?
31 catena
 
20.03.12
00:11
и зачем для этого менять цену??? алле, лифо не так организуется...
32 Денисок
 
20.03.12
00:11
(31) Задача такая стоит...я не знаю чем ФИФО неугодил
33 catena
 
20.03.12
00:12
(29)Документов много? Видимо потому, что проведение колбасит все со своими проверками...
34 Денисок
 
20.03.12
00:13
Нет, проверяю на базе около 15 документов
35 Денисок
 
20.03.12
00:14
3 из них должны перепроводится
36 Денисок
 
20.03.12
00:14
Если просто запись делать, то цена и сумма записываются, а если еще и провести, то висит
37 catena
 
20.03.12
00:15
(32)Не надо перепроводить документы поступления. Причин много, начиная от сданных налоговых отчетов, до несовпадения суммы документы с бумажными исходниками.
Суть списания - в порядке списанных партий, а не в изменении цены оприходования.
38 Kuzen
 
20.03.12
00:15
Сервис-настройка учета - учетная политика. там выбираешь фифо лифо/
39 ale-sarin
 
20.03.12
00:16
(32) А как задача стоит?
40 БибиГон
 
20.03.12
00:16
(35) у тебя проводятся все документы а не 3. ;)
41 Денисок
 
20.03.12
00:16
(40) поподробнее с этого места :)
42 le_
 
20.03.12
00:17
Могу предположить, что приведенный в (0) код находится в процедуре обработки проведения, в результате чего получается зацикливание.
43 catena
 
20.03.12
00:18
+(42)Кстати да, текущий-то документ тоже попадает в запрос...
44 Денисок
 
20.03.12
00:19
(39)Документом Поступление Товаров и Услуг Установить новые цена номенклатуры(Это я сделал) , выполнить переоценку партии товаров, высчитать дельту (это в отчет) и остальное (это потом)
45 ale-sarin
 
20.03.12
00:19
А мне кажется, что задача кем-то поставлена - настроить ЛИФО.
И сейчас парень изменит все документы входящие, а потом бух удивится - "че это взаиморасчеты с поставщиками изменились?"
46 БибиГон
 
20.03.12
00:19
(41) а что, это не видно? ;)
47 Денисок
 
20.03.12
00:19
Вот ребят!! как исправить, точно!
48 БибиГон
 
20.03.12
00:20
(45) это точно ))
49 Денисок
 
20.03.12
00:21
Да не ЛИФО не причем :) Это УТ с ней Бух работать не будет...её даже обновлять не будут, она просто учетная будет
50 ale-sarin
 
20.03.12
00:21
(44) Так может зафиксировать новые цены поставщика? НЕ меняя старые документы?
51 ale-sarin
 
20.03.12
00:22
(49) "просто учетная" чего? товара? денег? продаж? или еще чего?
52 Денисок
 
20.03.12
00:22
Короче нужно чтоб мой документ не попадал в проведение вместе с остальными.
53 ale-sarin
 
20.03.12
00:23
(52) не-е-е, так не отделаешься. Зачем (44)?
54 catena
 
20.03.12
00:23
(49)Ну ладно уж...
Добавь в запрос условие, где ссылка <> &ссылка параметр ссылка = ссылка.
Но менять старые документы ПЛОХО, тебя за это рано или поздно поставят в угол...
55 le_
 
20.03.12
00:24
(47) Лучше отказаться от этого алгоритма. Ибо получится не учет, а черте что )
Сформулируй задачу и выложи здесь в отдельной теме - найдется множество хороших советов.
56 ale-sarin
 
20.03.12
00:24
Есть регистр "Цены контрагентов". Есть отчеты "Стоимость склада в ценах таких-то или как-то так". Може это?
57 Денисок
 
20.03.12
00:26
(56) нет человеку нужно что бы партии меняли свою стоимость по цене последнего поступления
58 БибиГон
 
20.03.12
00:27
(57) с этого места поподробнее, какие партии? )
59 ale-sarin
 
20.03.12
00:27
(57) Ты можешь сделать все, что угодно "человеку". Но сделаешь хреново, т.к. не знаешь "зачем ему это нужно".
60 БибиГон
 
20.03.12
00:28
(58) точнее- какие именно партии. )
61 Денисок
 
20.03.12
00:49
(54) Классная мысль, документ не попадает в отбор, но остальные все же не проводятся, все зависает и вылетает. :)
62 Денисок
 
20.03.12
00:51
Я точно куда то не туда засунул проведение...но не могу разобраться самостоятельно
63 catena
 
20.03.12
05:15
(62)Ты точно недопонял задачу. Перечитай.
64 БибиГон
 
20.03.12
07:17
скорее всего закрытый период. ;)
65 Астероид
 
20.03.12
07:31
шикарный г0вн0к0д, в зал славы его :)
66 Астероид
 
20.03.12
07:40
за перепроведение документов с новыми ценами убивать нужно при рождении.
67 НЕА123
 
20.03.12
08:16
Денисок , найди себе учителя, толковых коллег. Желание программить вроде есть.
68 ASU_Diamond
 
20.03.12
08:46
(61) Пройди отладчиком и поймешь почему:
в документе Док1 есть Номенклатура Ном1
в документе Док2 есть Номенклатура Ном2

ты проводишь Док2, в выборку попадает Док1, при проведении Док1, в выборку попадает Док2...
69 ASU_Diamond
 
20.03.12
08:46
*в документе Док2 есть Номенклатура Ном1
70 asady
 
20.03.12
08:47
(0) автор за такой код банить нужно....
71 ASU_Diamond
 
20.03.12
08:49
(70) да ты гуманист
Закон Брукера: Даже маленькая практика стоит большой теории.