Восстановление бухгалтерских проводок из резервной базы данных в 1С: 7.7

29.03.17

Интеграция - Перенос данных 1C

Пример обработки, позволяющей восстановить (и не только) проводки из резервной базы данных после неосторожного массового изменения и проведения документов за (весьма) длительный период времени. Используется механизм OLE Automation.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Восстановление бухгалтерских проводок из резервной базы данных в 1С7.7:
.ert 237,00Kb
10
10
1 SM
Скачать Купить за 1 850 руб.

Использование механизма OLE очень широко освещалось на этом ресурсе. Есть немало различных примеров его приложений. В частности, своей публикацией я не открою Америки. Но я решил по горячим следам выложить здесь обработку, избавившую от нервенной болезни нескольких уважаемых людей на уважаемом предприятии. Ибо... в своем неуемном стремлении достичь совершенства в учете, некоторые главные бухгалтеры иногда теряют осторожность и с попустительства таких же неосторожных программистов открывают документы за весьма длительный период времени на изменение. Что при этом случается, - не мне вам рассказывать. Все бухгалтерские итоги по плану счетов за годы (десятилетия) летят в тар-та-ра-ры.

Именно с такой ситуацией мне и пришлось недавно столкнуться. И речи не было о том, чтобы пытаться пригладить модули проведения документов за 15лет, чтобы они давали ожидаемые проводки (в различных периодах - отличающиеся). Предлагаемая здесь обработка довольно универсальна. Но решает весьма узкую задачу: из резервной базы данных извлекаются проводки документов и записываются в рабочую базу данных. На этом универсальность заканчивается. В процессе, - перед записью, - вы можете внести изменения в сами проводки. Кому-что требуется. Я только обозначил место в обработке, куда нужно втискивать эти дополнительные алгоритмы, удалив оттуда свой конкретный случай в массе не интересный.

Конфигурация, в которой мне пришлось решать эту задачу, эксплуатируется уже около 15 лет. Ее правили многие программисты, вносили множество изменений. И в ней осталось уже мало общего с типовой конфигурацией. Но я попытался аккуратно выделить все необходимые для обработки процедуры и функции. Часть из них должна быть размещена в глобальном модуле рабочей и резервной баз данных. Некоторые включил в состав внешней обработки. А есть и такие, которые (по моим ожиданиям) уже имеются и весьма давно в глобальном модуле конфигураций для бухгалтерского учета. Если я что-то упустил и у вас возникнут затруднения на сей счет (обработка не сработает), - пишите в комментариях. Я постараюсь выложить дополнительные алгоритмы.

Глобальный модуль показать/скрыть
Функция ПолучитьРеквизитыПроводок () Экспорт

	Сп = СоздатьОбъект("СписокЗначений")	;
	Для Инд = 1 По Метаданные.РеквизитПроводки() Цикл
		сп.ДобавитьЗначение(Метаданные.РеквизитПроводки(Инд).Идентификатор);
	КонецЦикла;
	Возврат сп;
	
КонецФункции



Функция ПолучитьПроводки (Док, СДополнением=0) Экспорт

	тбПроводки = СоздатьОбъект ("ТаблицаЗначений");
	тбПроводки.НоваяКолонка("ДтСчет", "Счет");
	тбПроводки.НоваяКолонка("ДтСубконто1");
	тбПроводки.НоваяКолонка("ДтСубконто2");
	тбПроводки.НоваяКолонка("ДтСубконто3");
	тбПроводки.НоваяКолонка("КтСчет", "Счет");
	тбПроводки.НоваяКолонка("КтСубконто1");
	тбПроводки.НоваяКолонка("КтСубконто2");
	тбПроводки.НоваяКолонка("КтСубконто3");
	тбПроводки.НоваяКолонка("Сумма");
	тбПроводки.НоваяКолонка("Валюта");
	тбПроводки.НоваяКолонка("ВалСумма");
	тбПроводки.НоваяКолонка("Количество");
	Если СДополнением = 1
	Тогда
		сп = ПолучитьРеквизитыПроводок ();
		КвоРеквизитов = сп.РазмерСписка();
		Если КвоРеквизитов <> 0
		Тогда
			Для Инд = 1 По КвоРеквизитов Цикл
				тбПроводки.НоваяКолонка(сп.ПолучитьЗначение(Инд));
			КонецЦикла;
		КонецЕсли;
		тбПроводки.НоваяКолонка("Пометка");
	КонецЕсли;

    Если (Док.Проведен() = 0) И (Док.Вид()<> "Операция")
    Тогда
		Возврат тбПроводки;
    КонецЕсли;

	
	Опер = Док.Операция;
	Опер.ВыбратьПроводки ();
	Пока Опер.ПолучитьПроводку () = 1 Цикл

		тбПроводки.НоваяСтрока();
		тбПроводки.ДтСчет = Опер.Дебет.Счет;
		тбПроводки.ДтСубконто1 = Опер.Дебет.Субконто(1);
		тбПроводки.ДтСубконто2 = Опер.Дебет.Субконто(2);
		тбПроводки.ДтСубконто3 = Опер.Дебет.Субконто(3);
		тбПроводки.КтСчет = Опер.Кредит.Счет;
		тбПроводки.КтСубконто1 = Опер.Кредит.Субконто(1);
		тбПроводки.КтСубконто2 = Опер.Кредит.Субконто(2);
		тбПроводки.КтСубконто3 = Опер.Кредит.Субконто(3);
		тбПроводки.Сумма = Опер.Сумма;
		тбПроводки.Валюта = Опер.Валюта;
		тбПроводки.ВалСумма = Опер.ВалСумма;
		тбПроводки.Количество = Опер.Количество;
		
		Если СДополнением = 1
		Тогда
			Если КвоРеквизитов <> 0
			Тогда
				Для Инд = 1 По КвоРеквизитов Цикл
					ИмяРеквизита = сп.ПолучитьЗначение(Инд);
					тбПроводки.УстановитьЗначение(тбПроводки.КоличествоСтрок(), ИмяРеквизита, Опер.ПолучитьАтрибут(ИмяРеквизита));
				КонецЦикла;
			КонецЕсли;
			тбПроводки.Пометка = 0;
		КонецЕсли;
	КонецЦикла;

	Возврат тбПроводки;

КонецФункции



Функция  ПроводкиВФайл (НомерДок, ДатаДок, ВидДок, ИмяФайла) Экспорт
	
	Док = СоздатьОбъект("Документ");
	Если Док.НайтиПоНомеру(НомерДок, ДатаДок, ВидДок) = 0
	Тогда
		Возврат 0;
	КонецЕсли;
	
	тб = ПолучитьПроводки(Док, 1);
	
	ЗначениеВФайл(ИмяФайла, тб);
	Возврат 1;
	
КонецФункции



Функция  СводныеПроводкиВФайл (НомерДок, ДатаДок, ВидДок, ИмяФайла) Экспорт
	
	Док = СоздатьОбъект("Документ");
	Если Док.НайтиПоНомеру(НомерДок, ДатаДок, ВидДок) = 0
	Тогда
		Возврат 0;
	КонецЕсли;
	
	тб = ПолучитьПроводки(Док);
	
	тб.Свернуть("ДтСчет,КтСчет","Количество,Сумма");
	
	ЗначениеВФайл(ИмяФайла, тб);
	Возврат 1;
	
КонецФункции



Функция  СводныеПроводки (Док) Экспорт
	
	тб = ПолучитьПроводки(Док);
	тб.Свернуть("ДтСчет,КтСчет","Количество,Сумма");
	
	Возврат тб;
	
КонецФункции



//	Возвращает список объектов метаданных указанного типа
Функция глПолучитьСписокОбъектовМетаданных (ТипОбъекта) Экспорт
	сп = СоздатьОбъект("СписокЗначений");

	Если ТипОбъекта = "Константа"
	Тогда
		Для Инд = 1 По Метаданные.Константа() Цикл
			сп.ДобавитьЗначение(Нрег (Метаданные.Константа(Инд).ПолныйИдентификатор()), 
								Метаданные.Константа(Инд).Идентификатор);
		КонецЦикла;

	ИначеЕсли ТипОбъекта = "Справочник"
	Тогда
		Для Инд = 1 По Метаданные.Справочник() Цикл
			сп.ДобавитьЗначение(Нрег (Метаданные.Справочник(Инд).ПолныйИдентификатор()), 
								Метаданные.Справочник(Инд).Идентификатор);
		КонецЦикла;
		
	ИначеЕсли ТипОбъекта = "Документ"
	Тогда
		Для Инд = 1 По Метаданные.Документ() Цикл
			сп.ДобавитьЗначение(Нрег (Метаданные.Документ(Инд).ПолныйИдентификатор()), 
								Метаданные.Документ(Инд).Идентификатор);
		КонецЦикла;
		
	ИначеЕсли ТипОбъекта = "Перечисление"
	Тогда
		Для Инд = 1 По Метаданные.Перечисление() Цикл
			сп.ДобавитьЗначение(Нрег (Метаданные.Перечисление(Инд).ПолныйИдентификатор()), 
								Метаданные.Перечисление(Инд).Идентификатор);
		КонецЦикла;
		
	ИначеЕсли ТипОбъекта = "Отчет"
	Тогда
		Для Инд = 1 По Метаданные.Отчет() Цикл
			сп.ДобавитьЗначение(Нрег (Метаданные.Отчет(Инд).ПолныйИдентификатор()), 
								Метаданные.Отчет(Инд).Идентификатор);
		КонецЦикла;
		
	ИначеЕсли ТипОбъекта = "Обработка"
	Тогда
		Для Инд = 1 По Метаданные.Обработка() Цикл
			сп.ДобавитьЗначение(Нрег (Метаданные.Обработка(Инд).ПолныйИдентификатор()), 
								Метаданные.Обработка(Инд).Идентификатор);
		КонецЦикла;
		
	КонецЕсли;
	
	Возврат сп;
КонецФункции



Функция ПолучитьЦвет(Красный = 0,Зеленый = 0,Синий = 0) Экспорт
	// функция для формирования значения цвета из составляющих (RGB)
	Возврат Макс(0,Синий)*65536+Макс(0,Зеленый)*256+Макс(0,Красный);
КонецФункции


Функция глНЕ (Оп) Экспорт
	Если Оп = 0
	Тогда
	    Возврат 1;
	Иначе
	    Возврат 0;
	КонецЕсли;
КонецФункции



//	Устанавливает пометки элеметов списка
//  Если Пометка = -1 - инверсия текущих пометок
Процедура ПометитьСписокЗначений (сп, Пометка=1) Экспорт
	Для Инд = 1 По сп.РазмерСписка() Цикл
	    Если Пометка < 0
	    Тогда
			сп.Пометка(Инд, глНЕ(сп.Пометка(Инд)));
	    Иначе
			сп.Пометка(Инд, Пометка);
	    КонецЕсли;
	КонецЦикла;
КонецПроцедуры

Во внешней обработке, проводки документа из резервной базы данных помещаются в таблицу значений ПроводкиДляВосстановления. Перед тем, как записать их в рабочую базу данных, можете подвергнуть их изменениям в процедуре ОбработатьПроводкиДокументаПередВосстановлением. Это если хочется. Для простого восстановления проводок никакие дополнительные действия не требуются.

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

Перепровести - перепроведение документов согласно полученного списка в рабочей базе данных.

Восстановить - восстановление проводок документов согласно полученного списка из резервной базы данных. Если флажок "Модифицировать проводки..." включен и вы прописали алгоритмы модификаций в процедуре ОбработатьПроводкиДокументаПередВосстановлением, - изменения будут выполнены перед записью.

Три маленьких кнопки над списками: первая устанавливает все флажки, вторая - сбрасывает, третья - инвертирует. Не думаю, что картинки у вас будут такие же, если вообще будут.

См. также

Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Оперативный учет 7.7 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 Бухгалтерский учет Управленческий учет Абонемент ($m)

Обработка и правила обмена данными для выгрузки документов и всех связанных с ними справочников из 1С7.7 ТиС 9.2 в 1С8.3 БП 3.0 через файл XML. В типовых конфигурациях уже есть такое решение. Это немного доработанные правила и сама обработка выгрузки, добавлена возможность устанавливать отбор по выгружаемым документам по Фирме, Контрагенту, Складу, Проекту, Автору, ЮрЛицу. А также это внешняя обработка, что даёт возможность адаптировать её под нетиповую ТиС. Обработка и правила тестировались на платформах: 1С: Предприятие 7.7 и 1С: Предприятие 8.3.18.1334. На типовых конфигурациях: «Торговля + склад», редакция 9.2 (7.70 1004) и «Бухгалтерия предприятия» редакция 3.0 (3.0.96.30).

1 стартмани

13.08.2021    8707    53    Kuzya_brаtsk    8    

11

Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 1С:Управление торговлей 10 1С:Комплексная 7.7 Россия Управленческий учет Платные (руб)

Начните вести учет в УТ 10.3! Перенесите все свои данные в УТ 10.3 в любом месяце года и продолжите вести учет! Программа перенесёт любое количество баз с документами и остатками в больших количествах. Обработка выгрузки выполнит проверку исходных данных и сформирует отчет о найденных ошибках в справочниках и документах. Партии переносятся с себестоимостью. Штрихкоды номенклатуры загружаются. Цена переносится. Автор консультирует.

8400 руб.

17.03.2021    15742    5    13    

6

Зарплата Перенос данных 1C Программист Бухгалтер Бухгалтерский учет 7.7 Сложные периодические расчеты 1С:Бухгалтерия 7.7 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Как известно, Бухгалтерия 7.7 не имеет штатной возможности для обмена с ЗУП 3.1. Данная разработка пригодится тем, кто перешел с ЗиК 2.3 на ЗУП 3.1, но вынужден по каким-то своим причинам оставаться на Бухгалтерии 7.7.

18000 руб.

29.09.2020    13680    2    0    

5

Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Бухгалтерия 7.7 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Бухгалтерия 7.7 в БП 3.0 | Продукт является развитием и исправлением ошибок стандартной обработки для выгрузки данных из 1С Бухгалтерии 7.7 в Бухгалтерию 3.0 | Предоставляем техподдержку | Обновляем на новые релизы 1С | Перенос из 7.7 является сложным, и на рынке сложно найти специалистов 1С по "семерке" - сотрудники помогут вам выполнить переход в рамках техподдержки предлагаемого переноса данных!

45650 руб.

26.05.2020    34565    10    70    

16

Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обработка позволяет выгружать данные из ТиС 7.7 в конфигурации 8.3 для сдачи отчетности, для переноса данных при переходе на 8.3, для организации обмена внутри компании при использовании разных версий 1С в структурных подразделениях или формирования отгрузочных накладных для клиентов.

6000 руб.

18.05.2020    23197    59    39    

36

Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

При переходе на новую версию 1С в период параллельной эксплуатации может возникнуть необходимость обратной конвертации данных (по правилам КД версии 2.1) из 1С:Предприятие 8.3 в 1С:Предприятие 7.7 для переноса данных из 1С:Предприятие 8.3 в 7.7. Сделать это поможет следующая инструкция по КД2 о том, как создать новую конвертацию из 8.3 в 7.7, сохранить модуль и правила загрузки данных, сделать загрузку данных. КД2.

17.10.2019    14556    ksnik    0    

16

Загрузка и выгрузка в Excel Перенос данных 1C Программист Пользователь Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 1С:ERP Управление предприятием 2 Абонемент ($m)

Описание технологии загрузки любых адресов из 1С 7.7 с разложением по ФИАС в современные конфигурации 1C 8.3 на примере ERP. Предлагаемый способ просто чудо, он гарантирует результат, он очень простой и качественный! Моя обработка является синтаксическим анализатором, который подставляет в строку грязного адреса выражение "Дом №" и "Корпус", благодаря чему грязные адреса 7.7 сами очень хорошо раскладываются по значимым полям ФИАС - заполняется область, город, улица, дом, корпус.. все раскладывается само с помощью встроенного механизма современных конфигураций 1С 8.3, который написали сами сотрудники фирмы 1С!

1 стартмани

16.08.2019    19437    17    ksnik    12    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. bullet030 3 30.03.17 10:37 Сейчас в теме
Бухгалтерский учет, редакция 4.5 (7,70,615)
Секция.Ячейка.ЦветФона (ПолучитьЦвет<<?>>(192, 255, 192));
Функция не обнаружена (ПолучитьЦвет)
Секция.Ячейка.ЦветФона (ПолучитьЦвет(192, 255, 192)<<?>>);
Неопознанный оператор
Секция.Ячейка.ЦветФона (ПолучитьЦвет(192, 255, 192))<<?>>;
Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
Секция<<?>>.Ячейка.Текст = "НомерСтр";
Переменная не определена (Секция)
Секция<<?>>.Ячейка.РамкаОбвести (3, 3, 3, 3);
Переменная не определена (Секция)
Таб<<?>>.ВывестиСекцию (Секция);
Переменная не определена (Таб)
Для НК=1 по тб<<?>>.КоличествоКолонок() Цикл
Переменная не определена (тб)
тб<<?>>.ПолучитьПараметрыКолонки(НК, , Дл, , Назв);
Переменная не определена (тб)
Секция<<?>>.Ячейка.Текст = Назв;
Переменная не определена (Секция)
Секция<<?>>.Ячейка.РамкаОбвести (3, 3, 3, 3);
Переменная не определена (Секция)
Таб<<?>>.ПрисоединитьСекцию (Секция);
Переменная не определена (Таб)
Для НС = 1 По тб<<?>>.КоличествоСтрок() Цикл
Переменная не определена (тб)
Секция = Таб<<?>>.ПолучитьСекцию("Ячейка|Значение");
Переменная не определена (Таб)
Если ИмеетсяПометка <<?>>= 1
Переменная не определена (ИмеетсяПометка)
Пометка = Число (тб<<?>>.ПолучитьЗначение(НС, "Пометка"));
Переменная не определена (тб)
Секция.Ячейка.ЦветФона (ПолучитьЦвет<<?>>(255, 192, 192));
Функция не обнаружена (ПолучитьЦвет)
Секция.Ячейка.ЦветФона (ПолучитьЦвет(255, 192, 192)<<?>>);
Неопознанный оператор
<<?>>КонецЕсли;
Ожидается ключевое слово 'КонецЦикла' ('EndDo')
КонецЕсли<<?>>;
Ожидается ключевое слово 'КонецЦикла' ('EndDo')
При проверке модуля обнаружены синтаксические ошибки!
Показать
2. romasna 322 30.03.17 10:45 Сейчас в теме
(1)Позволь узнать, ты не забыл добавить процедуры/функции в глобальный модуль? В их перечне есть функция ПолучитьЦвет(...).
3. bullet030 3 30.03.17 11:05 Сейчас в теме
(2)
ы не забыл добавить процедуры/функции в глобальный модуль
- зачем? где их взять?
Разве нельзя добавить все процедуры/функции в модуль обработки?
4. romasna 322 30.03.17 11:13 Сейчас в теме
Нет, все процедуры и функции я не могу включить в состав обработки. Есть жесткие ограничения (OLE). Часть из них все-равно будет в глобальном модуле (должна быть!). А их перечень я указал в статье. Нужно раскрыть ссылку в статье "Глобальный модуль показать/скрыть" и все процедуры/функции из открывшейся области перенести в глобальный модуль твоей конфигурации (рабочей и резервной баз данных). Естественно, если ты сам не программист, рекомендую эксперименты проводить на копиях БД.
5. bullet030 3 30.03.17 11:25 Сейчас в теме
Хорошо.
- Функция не обнаружена (глНЕ)
6. romasna 322 30.03.17 11:29 Сейчас в теме
(5)Спасибо за замечание. Добавил в конец глобального модуля в статье.
7. bullet030 3 30.03.17 16:17 Сейчас в теме
Ещё
по нажатию кнопки "Сравнить"
тбПроводки.НашаФирма = Опер.НашаФирма;
Поле агрегатного объекта не обнаружено (НашаФирма) Объект (Опер)
8. romasna 322 30.03.17 16:33 Сейчас в теме
(7)Моя обработка работает в комплексной конфигурации, в плане счетов есть разделитель учета. Судя по сообщению, у тебя разделителя учета нет. Везде, где найдешь "НашаФирма", - забей строки комментариями //. Например:
//тбПроводки.НашаФирма = Опер.НашаФирма;
Это касается и модуля обработки, и процедур глобального модуля.
9. romasna 322 30.03.17 17:17 Сейчас в теме
(7)Строго говоря, стоило бы посмотреть в конфигурации, есть ли разделитель учета. Потому что, если он все-таки имеется, но под другим именем, то "НашаФирма" следовало бы заменить на "ТвойРазделительУчета". Его можно найти в дереве конфигурации. Щелкни дважды мышаком в дереве по "Планы Счетов" и на выпавшей панели справа внизу реквизит "Разделитель учета". Значение его - это и есть ТвойРазделительУчета. Если разделитель не назначен, то достаточно ограничиться комментариями, как я писал в предыдущем сообщении.
10. romasna 322 31.03.17 13:53 Сейчас в теме
(7)Я допустил оплошность, не приняв во внимание, что состав доп.реквизитов проводок отличается в различных конфигурациях. Взвалил эту проблему на твою голову. Скачай обновленный файл обработки, замени процедуру глобального модуля ПолучитьПроводки. Не забудь перед ней вставить новую функцию ПолучитьРеквизитыПроводок.
Теперь можно использовать обработку в любой конфигурации без необходимости внесения изменений..
11. Afanasenkovv 17.07.18 18:46 Сейчас в теме
Испытал вашу обработку! релиз Бух7.7 644 релиз. Добавил все что надо в глмодуль, однако при сравнении не отражает сами проводки, при восстановлении выдает ошибку (в файле)
Прикрепленные файлы:
12. romasna 322 17.07.18 20:46 Сейчас в теме
(11)Сожалею об этом. Но чтобы выразить еще что-то , кроме сожаления, мне требовалось бы рассмотреть обе Ваши базы данных. К тому же, более чем за год, прошедший со времени написания обработки, я уже все подзабыл и требуется детальное рассмотрение самой обработки. Возможно, проблема с какой-то ручной операцией (при восстановлении из резервной БД). Можно попытаться восстановление проводить выборочно, шаг-за-шагом, по видам документов для выявления места, в котором глюк. Небольшими периодами. Выключить некоторые документы в списке "Кривые документы", - в сообщениях видно место затыка. В любом случае, разбираться с этим придется программисту. Прошу меня извинить, не понял Ваш статус...
Я не гарантирую восстановление проводок документов из резервной БД для ЛЮБЫХ, не ограниченных фантазией бухгалтеров, внесенных изменений. По крайней мере, состав документов и ручных операций не должен был измениться. В свое время, я восстанавливал с ее помощью проводки, изменившиеся после неосторожного пере-проведения документов в прошлых периодах, пять-десять лет назад. Они стали другие, итоги посыпались. Но сам набор документов и операций не менялся.
13. Afanasenkovv 17.07.18 22:53 Сейчас в теме
Спасибо за ответ! Начал разбираться с кодом, возникла необходимость)
14. user1240798 19.06.19 15:32 Сейчас в теме
Ищу бухгалтера для восстановления отчетности за 1-2 квартал 2019 на базе 1С 7.7. niko6607@mail.ru
Оставьте свое сообщение