Новости:

Из правил форума: Тема должна отражать суть вопроса, топики типа "help please" будут удаляться!

Главное меню

Журнал-ордер 1С

Автор iron priest, 25.11.2009, 11:41

« назад - далее »

iron priest

вобщем подправил, выгрузило мне (а я еще путь изменил для сохранения).

НО! я вот взял счет 104 и у меня сальдо не сходится с тем что по оборотно-сальдовой ведомости

а программа, выгружает только сальдо ДТ и Кт на какую дату?

я хотел чтобы и начальные и конечные были

iron priest

а вот уже существующий журнал ордер нельзя переделать под мои желания? и просто потом сохранить для себя

iron priest

о!!! вроде на итог вышло!!!

есть еще один вопрос по поводу взлома пароля на конфигуратор. программер защитил конфигурацию, и я не могу зайти в неё чтобы в справочнике поставить субконто 1 "Наименование" вместо "Место хранения". а без этого обработка мне выгружает не по наименования объектов, а по местам хранения.

Алексей Шмуйлович

На счет взлома паролей, если вы конечно с копией базы балуетесь, в семерке это просто. Удаляете файлы из папки userdef (кажется так).
Оборотку конечно можно поменять, но там нужно не просто форму менять, а вообще алгоритм обхода субсчетов. Боюсь, что я не смогу помочь. Я не настолько силен в программировании 1С, чтоб браться за такие задачи. А для профессионала, думаю, плевое дело.

iron priest

c папкой я работал, но не удачно

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

Алексей Шмуйлович

А попробуйте вметсо номера субконто 1 указать 2. Может так проскочит?

iron priest

окей, буду копаться)))

iron priest

//*******************************************
//{{БУХГАЛТЕРСКИЙ ЗАПРОС(Сформировать)

//Данный фрагмент построен конструктором.
//При повторном использовании конструктора, внесенные вручную изменения будут потеряны!!!

//{{ Схема номер 1
//{{ ПодробноеПредставлениеСубконто

Процедура Сформировать()
   Сообщить("Начинаю выгрузку сальдо на "+ВыбКонПериода);
   Прдпр=Константа.БазФирма;
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   //Ит.ИспользоватьСубконто(ВыбВидСубконто3,, 1);
   Ит.ИспользоватьСубконто();
   //Ит.ИспользоватьСубконто();
   //Ит.ИспользоватьСубконто();
   Ит.ВключатьСубсчета(-1);
   Ит.ВыполнитьЗапрос(ВыбКонПериода, ВыбКонПериода, ,,, 1,, "С");
   Таб.ВывестиСекцию("константы");
   Таб.ВывестиСекцию("Счет");
   Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
   Ит.ВыбратьСчета();
   Пока Ит.ПолучитьСчет() = 1 Цикл
      //Таб.ВывестиСекцию("Счет");
      Сбк=Ит.Счет.КоличествоСубконто();    //считаем нулевые субконто
      Если Сбк = 0 Тогда
         ПолнНаименование=Ит.Счет.Наименование;   
         дебс=ит.скд();
         кредс=ит.скк();
         Таб.ВывестиСекцию("Субконто3");
      иначе
         деб=ит.скд();
         кред=ит.скк();
         Ит.ВыбратьСубконто(1,,,,,,1);
         Пока Ит.ПолучитьСубконто() = 1 Цикл
            ПолнНаименование=Ит.субконто(1);
            если Ит.субконто(1).ПредставлениеВида()="Контрагенты" тогда     
               //ИНН=   Ит.субконто(1).ИНН; 
               ПолнНаименование=Ит.субконто(1).ПолнНаименование ;
            конецесли;
            дебс=ит.скд();
            кредс=ит.скк();
            Таб.ВывестиСекцию("Субконто3");
            деб=деб-ит.скд();
            кред=кред-ит.скк();
         КонецЦикла;
         Если (деб<>0) или (кред<>0) Тогда
            ПолнНаименование=Ит.Счет.Наименование;   
            дебс=деб;
            кредс=кред;
            Таб.ВывестиСекцию("Субконто3");
         КонецЕсли;         
      конецесли;
   КонецЦикла;
   //Таб.ВывестиСекцию("Подвал");
   //Таб.ТолькоПросмотр(1);
   //Таб.Показать("Сформировать","");
   КаталогИ="C:\Documents and Settings\Adm\Рабочий стол\";//"C:\Buh\";//КаталогИБ()+"ExtForms\";
   отчет_ф= КаталогИ + "Сальдо по счетам "+СтрЗаменить(СокрЛП(Константа.БазФирма),"""","")+" на "+ВыбКонПериода+".txt";//+СокрЛП(СтрЗаменить(Фильтр,"*","x"),":",".")
   таб.записать(отчет_ф,"TXT");
   сообщить("Подготовлен файл "+отчет_ф);
   //ЗапуститьПриложение("explorer.exe /select, "+отчет_ф);
   //Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
   //   ЗавершитьРаботуСистемы();
   //КонецЕсли;
   
КонецПроцедуры
//}}БУХГАЛТЕРСКИЙ ЗАПРОС 

Процедура Автоматически()
   
   //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать)
   //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА
   
   //Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
      //ВыбКонПериода = "31.12.2007";
      //Сформировать();
      //ВыбКонПериода = "31.01.2008";
      //Сформировать();
      //ВыбКонПериода = "29.02.2008";
      //Сформировать();
      //ВыбКонПериода = "31.03.2008";
      //Сформировать();
      ВыбКонПериода = НачМесяца(ТекущаяДата())-1;
      Сформировать();
      ВыбКонПериода = НачМесяца(НачМесяца(ТекущаяДата())-1)-1;
      Сформировать();
      ВыбКонПериода = НачМесяца(НачМесяца(НачМесяца(ТекущаяДата())-1)-1)-1;
      Сформировать();
      ВыбКонПериода = ТекущаяДата()-2;
      Сформировать();
      ВыбКонПериода = ТекущаяДата()-1;
      Сформировать();
      ВыбКонПериода = ТекущаяДата();
      Сформировать();
      //ЗавершитьРаботуСистемы();
   //КонецЕсли;
      сообщить("Готово!");
КонецПроцедуры




вот где жирным я заменил на субконто 3, выдало ошибку...


ЗЫ: ничего что код высветил здесь? или удалить?

Алексей Шмуйлович

Код пускай висит, мне не жалко.

Попробуйте кусочек

   //Ит.ИспользоватьСубконто(ВыбВидСубконто3,, 1);
   Ит.ИспользоватьСубконто();

Заменить на

   Ит.ИспользоватьСубконто(ВыбВидСубконто2,, 1);
   //Ит.ИспользоватьСубконто();

А вот здесь

Таб.ВывестиСекцию("Субконто3");

не нужно заменять номер субконто. Там кажется ранше было Субконто1 - верните назад как было. Это в самом деле не номер субконто - это просто название секции таблицы и назвать его можно как угодно. Посмотрите на разметку таблицы, поймете.
Да, очень сложно это все по памяти. А на работе минуты нет, чтобы посмотреть :(

iron priest

а я всетаки взломал пароль))))


обработка работает как надо, только обидно что мне выдает остатки только на конец периода....


но всеравно спасибо!!!


тему можно ликвидировать

Алексей Шмуйлович

Зачем ликвидировать? пусть висит. Может кому сгодится.

По поводу конца и начала периода. Конец одного - всегда начало другого.

Допустим Вам нужны остатки на начало и конец ноября. Берете остатки на 30.11 и 31.10. Собираете в одну таблицу, строите сводную и выносите дату в заголовок столцов. Все. Вы получаете данные на начало и конец по каждой позиции.

iron priest

#26
в принципе логично :)


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

Алексей, возможно ли чтобы обработка выгружала и наименование и инвентарный номер либо в одной колонке с наименование объекта либо в соседней?

Алексей Шмуйлович

Конечно, возможно. Просто это обработка общего вида, а у Вас конкретная задача под конкретный счет.

У Вас в коде есть образец, как это сделать:

            если Ит.субконто(1).ПредставлениеВида()="Контрагенты" тогда     
               //ИНН=   Ит.субконто(1).ИНН;
               ПолнНаименование=Ит.субконто(1).ПолнНаименование ;
            конецесли;

Делайте по аналогии. Найдите в дереве конфигурации, правильно как называется у Вас субконто справочника основных средств и замените Ит.субконто(1).ПредставлениеВида()="Контрагенты" на Ит.субконто(1).ПредставлениеВида()="ОсновныеСредства" (например).
Дальше в нутри вместо               ПолнНаименование=Ит.субконто(1).ПолнНаименование ;
пишем что-то типа ИнвентарныйНомер=Ит.субконто(1).ИнвентарныйНомер ;
Только посмотрите, как правильно называется поле справочника ОС с инвентарным номером.
И последний штрих. В таблице в секции Субконто1 в отдельный столбец вставляем формулу <ИнвентарныйНомер>.
Ну, для красоты еще можно название столбца приписать в секцию Шапка (или как там она называется?).

Кстати, еще одно преимущество выгрузки перед стандартной ОСВ - вы можете увидеть не только начальный и конечный остаток по позиции, а построить, например ежедневную или ежемесячную динамику. С помощью все той же сводной таблицы.

iron priest

спасибо, щас буду куралесить :D

iron priest

подправил. вот такое получилось


если Ит.субконто(1).ПредставлениеВида()="НеоборотныеАктивы" тогда      
               //ИНН=   Ит.субконто(1).ИНН;  
               ИнвенНомер=Ит.субконто(1).ИнвенНомер;
            конецесли;


но выдает ошибку

Неопознанный оператор
<<?>><ИнвенНомер>