Имя: Пароль:
1C
 
Групповое изменение проводок
0 VasiL-V
 
19.04.10
17:28
Друзья! Как бы так извратиться, чтобы изменить Счет Кт и Субконто Кт, в проводках формируемых Счет-фактурами. Счет фактуры отбираю по виду
1 VasiL-V
 
19.04.10
17:43
Может кто знает обработку, которой можно поравить проводки у кучи документов?
2 Живой Ископаемый
 
19.04.10
17:52
Поиск и Замена значений, на любом ИТСе
3 VasiL-V
 
19.04.10
18:03
А как я там выберу вид счета фактуры? Он вообще не дает отборы задавать, а тупо предлагает заменить все найденные значения. :(
4 kitt
 
19.04.10
18:04
обработка в 10 строк.Трудно написать?
5 VasiL-V
 
19.04.10
18:07
(4) Если честно да, никогда не работал програмно с проводками :(
6 kitt
 
19.04.10
18:15
Для каждого ТекСф из МассивСф Цикл
  ПроводкиСф = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
  ПроводкиСф.Отбор.Регистратор.Установить(ТекСф.Ссылка);
  ПроводкиСф.Прочитать();

  Для каждого ТекПроводка из ПроводкиСф Цикл
     Если ТекПроводка.СчетДт = НужныйСчет Тогда //Любое условие на отбор счетов и субконто
        ТекПроводка.СубконтоДт.Контрагенты = НужныйКонтр;
        //и т.д.
     КонецЕсли;
  КонецЦикла;
  ПроводкиСф.Записать();
КонецЦикла;


это на коленке...
и не забывай что программисты, как админы, тоже делятся на два типа )
7 VasiL-V
 
20.04.10
15:23
ВЫБРАТЬ
       СчетФактураВыданный.Ссылка
   ИЗ
       Документ.СчетФактураВыданный КАК СчетФактураВыданный
   ГДЕ
       СчетФактураВыданный.Дата МЕЖДУ &ДатаНач И &ДатаКон И
       СчетФактураВыданный.ВидСчетаФактуры = &ВидСЧ

Запрос.УстановитьПараметр("ДатаНач", ЭлементыФормы.ДатаНачала.Значение);
   Запрос.УстановитьПараметр("ДатаКон", ЭлементыФормы.ДатаКонец.Значение);
   Запрос.УстановитьПараметр("ВидСЧ", "На аванс");

Почему это запрос в консоле запросов выдает результат, а в обработке нет? Перестает работать после добавления &ВидСЧ
8 Живой Ископаемый
 
20.04.10
15:24
а что, СчетФактураВыданный.ВидСчетаФактуры тип - строка? в консоли ты буквами пишешь? "На аванс"?
9 VasiL-V
 
20.04.10
15:26
Значение параметра - На аванс, устанавливаю параметр в Консоле
10 VasiL-V
 
20.04.10
15:32
вместо строки - Запрос.УстановитьПараметр("ВидСЧ", Перечисления.НДСВидСчетаФактуры.НаАванс);
Консоль запросов работает со стокой, тут нет, пипец
11 Живой Ископаемый
 
20.04.10
15:34
консоль тоже не работает. переходите на 77 там это реализовано
12 VasiL-V
 
20.04.10
15:36
(11) Ну я в консоли, написал в значение парметра строчку - "На аванс", как не работает? ))
13 Живой Ископаемый
 
20.04.10
15:37
2(12) вот так. Не путай "ввод по строке" и "ввод строки"
14 VasiL-V
 
20.04.10
16:00
Если ТекПроводка.СчетДт = НужныйСчет Тогда

А как задать счет 68.02? Я уже плачу с этим 1с
15 Живой Ископаемый
 
20.04.10
16:01
Читай буквари, там написано
16 VasiL-V
 
20.04.10
16:06
Да вроди прочитал, но вылетело из головы. Какие-то примитивные вещи настолько неинтуитивны :(
17 Живой Ископаемый
 
20.04.10
16:07
Ну.. ноотропил или пирацетам тогда....
18 VasiL-V
 
20.04.10
16:10
Не, прорвемся!
19 hhhh
 
20.04.10
17:06
задай как поле на форме. Даты ведь ты задал.
20 VasiL-V
 
20.04.10
17:13
Я потихоньку продвигаюсь))
ТекПроводка.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами; - так задал счет.
Теперь надо менять субконто1 и 2, а на конструкцию
ТекПроводка.СубконтоКт1=..
Почему-то ругается :(
21 Живой Ископаемый
 
20.04.10
17:17
потому что нет такого реквизита... Есть коллекция ТекПроводка.СубконтоКт
22 VasiL-V
 
20.04.10
17:23
Уже решил))
kitt подсказал же вверху.
ТекПроводка.СубконтоДт.Контрагенты = Справочники.Контрагенты.НайтиПоКоду(50043);

Теперь надо присвоить Субконто2.. Я так понимаю это договор контрагента, но вариант:
ТекПроводка.СубконтоКт.ДоговорыКонтрагентов = Справочники.ДоговорыКонтрагентов.НайтиПоКоду(15256);

Не прокатил ((
23 VasiL-V
 
20.04.10
17:24
Хелп плиз))
24 Живой Ископаемый
 
20.04.10
17:25
У договоров Контрагентов числовой код? или все-таки строковый?
если поставить на эту строчку точку останова, то чему равно Справочники.ДоговорыКонтрагентов.НайтиПоКоду(15256)?
25 VasiL-V
 
20.04.10
17:33
Строковый...
ТекПроводка.СубконтоКт.ДоговорыКонтрагентов = Справочники.ДоговорыКонтрагентов.НайтиПоКоду(строка(15256));
Не получается.

Это конечно звучит странно и похоже на параною, но тут где я сеня пишу эту шнягу, отладчик вызывает аварийное завершение конфигуратора...
Подскажите как этот договор присвоить - последняя строчка ведь, она сложная самая)
26 Живой Ископаемый
 
20.04.10
17:38
Но табло-то у тебя не вызывает аварийного завершения?
Пробуй в нем.
Должно быть так:
https://docs.google.com/leaf?id=0B-jxtBB8IRaZMzNiMmVhZTgtNzliOS00ODRhLWFjZDgtMTBkMzBjNmFhM2Y2&hl=en

в качестве значения будет наименование... Если оно пустое - значит ты слажал с параметром.
27 Живой Ископаемый
 
20.04.10
17:40
Ну и для прикола посмотри в том же табло чему равно
твое

строка(15256)
28 VasiL-V
 
20.04.10
17:48
Ссылка не открылась, а строка(15256) и правда прикальнула меня, теперь будем думать как пробел удалить)))
29 Живой Ископаемый
 
20.04.10
17:50
не надо думать, уже все и так известно.. кроме того зачем тебе писать число, почему сразу не написать строку:
Справочники.ДоговорыКонтрагентов.НайтиПоКоду("15256")
30 VasiL-V
 
20.04.10
17:52
Я с самого начала написал просто строку. Срабытывает на паре документов и потом выдает:

{Форма.Форма(87)}: Поле объекта не обнаружено (ДоговорыКонтрагентов)
               ТекПроводка.СубконтоКт.ДоговорыКонтрагентов = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("15256");
31 VasiL-V
 
20.04.10
17:53
Соврал, обламывается уже на первом документе
32 VasiL-V
 
20.04.10
17:55
Блин( Вот засада
33 Живой Ископаемый
 
20.04.10
17:56
Что пишет в табло такой код:
Справочники.ДоговорыКонтрагентов.НайтиПоКоду("15256")

как ты такой суетливый дожил до стольки лет? как ты улицу переходишь? Тоже добегаешь на красный свет до середины и возвращаешься назад?
34 VasiL-V
 
20.04.10
17:57
Справочники.ДоговорыКонтрагентов.НайтиПоКоду("15256") - Выдает правильное значение.

Не, это у меня с 1С такие специфичные отношения:) А вообще я люблю ее, но не сейчас)
35 Живой Ископаемый
 
20.04.10
17:59
Значит сообщение из (30) относится к левой части строки, то есть к ТекПроводка.СубконтоКт.ДоговорыКонтрагентов
Думаю это потому что нет такого субконто Договоры Контрагентов, а есть договоры... Впрочем в этом лекггко убедится
36 Живой Ископаемый
 
20.04.10
18:00
2(34) Плевать на 1С. не плевать на умение декомпозиции задачи и локализации проблемы. Где оно?
37 VasiL-V
 
20.04.10
18:04
(35) я уже проверил - среди типов значений есть справочник ДоговорыКонтрагентов - следовательно такое поле есть.

Я бьюсь с проводками, которые делает Счет фактура выданная, в БП.
38 VasiL-V
 
20.04.10
18:05
(36) Да согласен, иногда теряю рассудительность (
39 Живой Ископаемый
 
20.04.10
18:07
2(37) ах он проверил.. А ты не проверил среди Операции\Планы Видов Характеристик\СубконтоХозрасчетные ? есть там такое СУБКОНТО?
40 Живой Ископаемый
 
20.04.10
18:11
Или опять же - в Табло выполнить две строчки:
ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные["ДоговорыКонтрагентов"]
и
ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные["Договоры"]
41 VasiL-V
 
20.04.10
18:13
... эххх.. да, там договоры..

Но вместо выполнения обработки я получил в лоб:

{Форма.Форма(91)}: Ошибка при вызове метода контекста (Записать): Запись не верна! Вид субконто "Виды платежей в бюджет (фонды)" не доступен для данной записи! (Регистр бухгалтерии: Журнал проводок (бухгалтерский учет); Номер строки: 1)
       ПроводкиСф.Записать();
по причине:
Запись не верна! Вид субконто "Виды платежей в бюджет (фонды)" не доступен для данной записи! (Регистр бухгалтерии: Журнал проводок (бухгалтерский учет); Номер строки: 1)

Не любит мну 1С :(
42 VasiL-V
 
20.04.10
18:14
Пока МассивСФ.Следующий() Цикл
       Док = МассивСФ.Ссылка.ПолучитьОбъект();
       //Сообщить(Док.Контрагент);
       Док.РучнаяКорректировка=истина;
       Док.Записать();
       ПроводкиСф = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
       ПроводкиСф.Отбор.Регистратор.Установить(МассивСФ.Ссылка);
       ПроводкиСф.Прочитать();
       
       Для каждого ТекПроводка из ПроводкиСф Цикл
           Если ТекПроводка.СчетКт = ПланыСчетов.Хозрасчетный.НДС Тогда
               Сообщить("Ура!");
               ТекПроводка.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами;
               ТекПроводка.СубконтоКт.Контрагенты = Справочники.Контрагенты.НайтиПоКоду(50043);
               ТекПроводка.СубконтоКт.Договоры = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("15256");
               
           КонецЕсли;
       КонецЦикла;
       ПроводкиСф.Записать();
   КонецЦикла;

Это типа тот самый супер код)
43 VasiL-V
 
20.04.10
18:15
Черт, да, "Сообщить()" при неработающем отладчике решают :)
44 Живой Ископаемый
 
20.04.10
18:17
Это из-за того, что ты меняешь счет с одного (на котором есть аналитика "Виды платежей в бюджет (фонды)", и она заполнена, и ты ее не обнуляешь) на другой, на котором нет такой аналитики... Аналитика остается заполненненой, но для новго-то счета она не определена - вот и получаешь.
45 VasiL-V
 
20.04.10
18:18
айн момент...
46 Живой Ископаемый
 
20.04.10
18:19
После
ТекПроводка.СубконтоКт.Договоры = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("15256");
Напиши
Сообщить(""+ТекПроводка.СубконтоКт.ВидПлатежейВБюджетИЛИКакОНОТочнНазывается);
47 VasiL-V
 
20.04.10
18:26
Сообщить(""+ТекПроводка.СубконтоКт.ВидПлатежейВБюджетИЛИКакОНОТочнНазывается); - эта строчка выдала
{Форма.Форма(93)}: Поле объекта не обнаружено (ВидПлатежейВБюджетИЛИКакОНОТочнНазывается)
               Сообщить(""+ТекПроводка.СубконтоКт.ВидПлатежейВБюджетИЛИКакОНОТочнНазывается);


А вообще, очистка субконто конечно помогла. Я почему-то наивно полагал что при замене счета она меняется автоматически как при правке в бухгалтерии, а тут же мы напрямую с проводкой работаем.
48 Живой Ископаемый
 
20.04.10
18:28
2(47) Ты читать умеешь?
тебя не смутил этот идентификатор?
ВидПлатежейВБюджетИЛИКакОНОТочнНазывается
49 VasiL-V
 
20.04.10
18:30
О боже...)) Ща ради интереса допишу
50 Живой Ископаемый
 
20.04.10
18:31
Я ж не знаю как в твоей конфигурации называется этот вид субконто.
51 Живой Ископаемый
 
20.04.10
18:31
но если очистил то уже ничего писать не нужно.
52 VasiL-V
 
20.04.10
18:35
Виды платежей в бюджет (фонды).

Фух, ну все пора домой. Спасибо что составил мне компанию этим пасмурным вечерком! Туповат я еще конечно)
53 Живой Ископаемый
 
20.04.10
18:36
2(52) Идентификатор не может иметь в себе пробелов и скобок... Вы привели наименование вида субконто а не его идентификатор как предопределенного элемента
54 VasiL-V
 
20.04.10
18:39
Ну тогда посмотреть его это дело принцыпа! ) Ща открою опять, 5 сек
55 VasiL-V
 
20.04.10
18:40
предопределенный - ВидыПлатежейВГосБюджет :)
56 Живой Ископаемый
 
20.04.10
18:42
да